LINUX.ORG.RU

О бедном Crystal замолвите слово

 , , ,


2

7

Рассматриваю варианты на замену Go для личного проекта. Сообществом Crystal высказывается мнение, что он то как раз на эту роль и годится, во всём превосходит первый и незаслуженно обделён вниманием (это же слышу от апологетов Nim). Go, конечно, куц и по возможности я бы предпочёл не популяризировать посредственный ЯП, если есть варианты. На Ruby никогда не писал, но после беглого ознакомления некоторые элементы заходят. Кто заглядывал под хвосткапот этому Crystal? Там всё серъёзно или я-его-сварила-из-того-что-было, как в V?



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

она должна была быть привлекательной для пользователей (developers! developers!), помогать им решать насущные проблемы лучше имеющихся платформ, чтобы они ей, собственно, пользовались — писали под неё то, это и ещё вон то. Что там было по платформам в то время? Какие были проблемы — ручное управление памятью? проприетарность?

У Java не было ничего, и до 1999 года по производительности она мало отличалась от PHP. Где-то к тому времени ее нишу в браузерах сожрал Flash, а жава аплеты так и не стали адекватным решением, которое просто работает везде, а не сношает мозги на каждой отдельной машине. Что остается? Десктоп? Никакого серьезного успеха помимо создания IDE на десктопах я не помню. Да, к нулевым жава стала быстрее скриптовухи и плотно закрепилась в этйо нише, но «помогать им решать насущные проблемы лучше имеющихся платформ» — это, наверное, даже слишком громкое заявление.

Так вот я и спрашиваю: если у нас есть достаточно посредственная платформа, которой пользуются потому, что ей пользуются — что должно случиться, чтобы люди перешли на другую такую же посредственную или чуть менее посредственную платформу?

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

Чтобы посрать в туалете, нужно до него дойти, а ведь лучше обосраться под себя — логично? Самое смешное, что жить в говне зачастую не дешевле, чем ходить в туалет.

Я тебе немножко помогу, потому что ты какими-то абстрактными аргументациями за мир во всем мире бросаешься: с позиции среднего манагера, не разбирающегося в технических подробностях и не умеющего набирать персонал, существует случайность инициативы порядка «50% шанс что ничего не получится, 45% — получится плохо, 5% — получится хорошо»; тогда манагер трезво оценивает ситуацию «я бездарный организатор, но хороший продажник и жополиз — так зачем всем демонстрировать мою слабую сторону?», принимает волевое решение «не палиться» — и здесь приходят Oracle, SAP, Atlassian, IBM, за выбор которых еще «никого не увольняли», и говорит «у нас уже всё работает, мы уже сделали 20 попыток и выбрали 5% того самого хорошего результата». Естественно, как ты понимаешь, все вышеуказанные конторы продают результат из диапазона 45% — но кто ж разберется (кроме меня)?

Усугубляющие факторы, специфичные конкретно для американской околотехнической культуры — это специализация (не лезь, если у тебя нет двух высших образований по этой сфере) и противодействие любой новизне, особенно если за ней не стоят большие деньги (но даже деньги ничего не гарантируют). Мне все еще не до конца ясно, каким образом такая культура сформировалась именно там, но факт остается фактом — именно такая культура позволила США сидеть на имперской системе до сих пор, поскольку с одной стороны есть «проверенные специалисты с 30-летним стажем», а с другой стороны — маганеры, которые не могут взять на себя риск принятия какого-то решения. И пофигу, что если ты летишь самолетом в любую другую страну, то там тебе наливают керосин литрами, а не галонами, что персоналу приходится осваивать обе системы, то есть, в долгосрочной перспективе убытки превышают затраты на однократный переход.

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

Макросов не будет, прощай синтаксическая абстракция. Нужна новая управляющая конструкция? Страдай, умоляй, жди релиза.

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

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

Спаяй спидуину у себя в гараже. Ты что, не опенсорсник?

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

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

Зачем в новый язык включили старый?

Самое смешное что ответ на этот вопрос будет очевиден любому продажнику: потому что так проще продавать и продвигать.

Хочется упомянуть извечную цитату:

— Чуешь разницу? Чуешь?
— Чую.
— Каким порошком ты теперь будешь стирать? 
— Зубныыыыым…
— КАКИМ?
— Зубныыым!
— Правильно, мать твою! Как долго я тебя лечил — жаль, что мать не увидит!

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

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

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

Меня можно упрекнуть разве что в том, что я не помню функции какой-то там стандартной библиотеки наизусть, но на общее представление эта форма «экспертизы» не влияет.

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

У Java не было ничего

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

лучше обосраться под себя

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

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

Меня можно упрекнуть разве что в том, что я не помню функции какой-то там стандартной библиотеки наизусть, но на общее представление эта форма «экспертизы» не влияет.

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

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

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

Хз как там в начале но потом JAVА взяли как основу для J2EE. Этой штуки даже в НЕТ не было. А теперь про J2EE забыли, выпустили всякую фигню типа Spring и т.д.

Лично я не понимаю зачем так, сделали такой же бы набор стандартов для того же Python и он бы возрулил бы еще надолго.

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

я не понимаю зачем так, сделали такой же бы

Потому что никто заранее не знал, хорошая это на самом деле идея или нет. Проверили на практике — оказалась не очень. Почесали репы и стали искать другие идеи.

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

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

Ты писал мне про рисование кнопки — это УЖЕ делается на видеокартах, и в браузерах, и в отдельных GUI фреймворках, вроде WPF и UWP (про остальные не знаю).

Опять же исходя из моих знаний о Objective-C и Cocoa весь эффект плавности достигается тщательной подгонкой софта, не железом. Сам процессор очевидно медленее чем топовые версии от AMD/Intel.

Я не считаю ARM революционной платформой, но меня возмутила твоя фраза про «лучше x86 ничего нет». На текущий момент ARM уже преодолел инертность индустрии, которая позволяла худшей технологии иметь меньше себестоимость, и индустрия уже как минимум рассматривает ARM на равне с x86 (например, наша серверная софтина разрабатывается под эти две платформы). И в том числе винда работает на ARM, хотя совсем недавно даже сильно урезанная Win CE была x86-only.

Далее, смотрим на бенчи:
https://www.cpubenchmark.net/singleThread.html
Обрати внимание, что СМАРТФОНОВЫЙ процессор A17 Pro укатал x86 процессоры для оверклокеров. Всё, эпоха x86 кончилась, более твои аргументы про «сам процессор очевидно медленее» неактуальны, при этом он кратно энергоэффективнее, а скоро будет и кратно дешевле, чем x86.

И это в том числе можно приплести к обсуждению про
О бедном Crystal замолвите слово (комментарий)

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

Как же так вышло, что ARM лучше всем, но им не пользуются потому, что не пользуются?

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

выпустили всякую фигню типа Spring и т.д.

Кто выпустил? J2EE проприетарное говно, а Spring свободный фреморк от сообщества.
Я помню что когда в Spring бины и сущности динамически проксировались, в J2EE для них требовалась кучу кода для явных вызовов и нотификаций при получении новых состояний.
Потом в spring завезли CGLIB который позволил проксировать классы без создания интерфейсов. На фоне Spring J2EE был каким-то неповоротливым пропитанным поделием
если в фирме использовали J2EE, то знаний было не достаточно, нужно было получать сертификат :)))


Updated: зачеркнул все что я написал про J2EE в технической части, потому как я не кодил на J2EE и это высер, то что я где-то прочитал, не считается.

P.S: По 15 станицам жаркой дискуссии вижу что Crystal очень популярен.

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

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

В том смысле, что не нужно клепать макросы просто потому что можешь. Если задача решается функцией, пиши функцию. Но если не решается — тут-то ты и поймёшь, почему иметь средства синтаксической абстракции лучше, чем не иметь.

Именно чрезмерное применение макросов убило лисп.

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

Может быть, когда-нибудь мы увидим новый стандарт лиспа с учётом всего этого нового опыта, старый уж больно древний стал.

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

Знаешь я делал такую ошибку пару раз: запускал разработку на чем-то действительно новом на тот момент. Заканчивалось это печально, потому что «новое и интересное» брало и сдувалось.

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

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

Слишком общий вопрос, я бы порекомендовал сфокусироваться на «а если бы это была стандартная библиотека?» — поскольку проблема получается намного серьезнее, и я с ней лично сталкивался.

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

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

Раскочегарить арм до скоростей x86 наверное можно, и не сомневаюсь, что аппле к этому придёт в мак-про и прочих десктопах. Но оно и жрать будет плюс-минус как x86, физика.

Apple A17 Pro — TDP 8 Вт.
Обогнавший его конкурент, Intel Core i9-13900KF, Typical TDP: 125 W.
Физика?

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

Прям совсем ничего. Ни безопасного доступа к памяти, ни сборщика мусора, ни переносимости на уровне байткода, ни знакомого С-образного синтаксиса, ни модного ОО.

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

Так ты именно это и предлагаешь — выкинуть устаревшие унитазы, жрущие воду литрами и требующие сантехников для обслуживания, и заменить их прогрессивным полиэтиленовым пакетиком, приклеенным скотчем к заднице.

Я не говорил, что я предлагаю заменить унитазы на пакетики, но я настаиваю на том, что крупный бизнес не ходить срать в туалет — он ведет канализацию прямо к рабочим местам. Ходить в туалет нужно обучать сотрудников — ­это слишком сложно, требует большого периода адаптации со снижением эффективности работы.

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

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

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

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

Проверили на практике — оказалась не очень.

В смысле ? Набор стандартов это что плохо ?

Типа какой то там api (да хоть win-api), glibc, шаблоны, интерфейсы компа и т.д. мы понимаем что ЭТО круто, а подняться на один уровень выше это уже сложно … мда :(((

Хотя да согласен, у нас же капитализм ! На всех автомобилях гайки должны быть разные !

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

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

У Java не было ничего, и до 1999 года по производительности она мало отличалась от PHP.

В 1999м году уже была Java SE 1.2, вот взгляни на спеку тех лет, все это уже тогда в ней было.

А PHP на 1999й год фактически не существовал:

Suraski and Gutmans then started a new rewrite of PHP’s core, producing the Zend Engine in 1999.[32] They also founded Zend Technologies in Ramat Gan, Israel.[12]

Даже в 2003-2004м это было расширение для Apache, оно так и называлось mod_php и считалось скорее шаблонизатором чем отдельным языком.

Где-то к тому времени ее нишу в браузерах сожрал Flash

Флеш во-первых не сожрал а забрал лишь «нишу» всякой анимации и игр, но точно не заменил Java целиком. До самых последних дней поддержки Java Applets в браузере они так и использовались для коммерческого софта. И кое-где используются до сих пор через специальный плагин для хрома.

Я сам участвовал в разработке клиент-банка, где клиентская сторона представляла собой апплет на джаве.

Что касается производительности, на стандартном офисном компе коммерческие апплеты (с интерфейсом на Swing) никогда не тормозили.

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

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

Меня можно упрекнуть разве что в том, что я не помню функции какой-то там стандартной библиотеки наизусть, но на общее представление эта форма «экспертизы» не влияет.

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

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

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

это УЖЕ делается на видеокартах, и в браузерах, и в отдельных GUI фреймворках, вроде WPF и UWP (про остальные не знаю).

Делается и делается хорошо/осмысленно это разные вещи. В 21м веке очень уж много чего можно сделать просто на уровне прототипа.

но меня возмутила твоя фраза про «лучше x86 ничего нет»

Для десктопа а не везде. Суть то в чем: два глаза, две руки и 10 пальцев - ресурсы человека ограничены. А значит всегда можно предсказать максимально возможную нагрузку на интерфейс - сколько максимально графических элементов имеет смысл показывать одновременно чтобы мозг не взорвался.

Более того, такие расчеты есть.

Еще раз: десктоп и интерфейс это конечные задачи по своей сути, поскольку ограничены физическими возможностями самого человека.

Старая и ограниченная x86 для этого идеально подходит - тебе ОС рисует окошки на x86 процессоре а 3D-графика или расчеты считаются на отдельной железке, где быстро но по-другому а готовый результат затем рисуется в окошке. И все рады.

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

Если забыть, что она никогда не была скриптовухой — то да %)

Скорость выполнения у Java была как у скриптовухи. Сам подумай: если у тебя s += "asd" создает новый объект и удаляет старый в Java, но то же самое происходит и в питоне — тогда в чем разница? o.s = "asd" в Java зачастую требует поиска setter-а в vtable плюс создания объекта, а в питоне внезапно тоже есть байткод, в котором хэш атрибута «s» уже просчитан, таким образом в большинстве случаев тот же o.s = "asd" на питоне создает объект и делает доступ к хэш-таблице по индексу (чаще всего без дополнительного выделения памяти и копирования).

То есть, разница в выполнении машинных кодов между Java и Python была небольшой до появления JIT-компилятора. А если в питон поставить расширение для математических операций над матрицами, то Java без JIT очень быстро оказывается в жопе.

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

Я сам участвовал в разработке клиент-банка, где клиентская сторона представляла собой апплет на джаве.

А я пользовался аппретами для подписи платежных поручений из под linux начиная с 2010 :)

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

в браузерах сожрал Flash, а жава аплеты так и не стали адекватным решением, которое просто работает везде, а не сношает мозги на каждой отдельной машине

Вообще Applets а позднее WebStart использовался B2B и для внутренней кухни компаний упрощали дистрибуцию и обновление приложений. Под приложениями компаний в 90% подразумеваются CRUDы с разной бизнес обвязкой имеющие UX десктопных приложений. Браузеры тогда не годились для SPA и сложных UI.

Кроссплатформенность тоже жирный бонус, я не знаю как было везде, но я работал в фирмах где на девелоперских машинах был Linux, на рабочих местах Windows, на сервере Solaris. Swing UI на виндовых машинах смотрелся нативно. Пользовался ли кто Mac я не знаю, в багах скришнотов Mac не видел.

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

Apple A17 Pro — TDP 8 Вт.

Почему эта радость тогда поджаривает юзеру коленки и яйца в Ableton? У звукового софта требования более, чем скромные. Оно вообще холодное должно быть.

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

тогда это лучшая учительница в школе

Уважение за жесть и хардкор типа? :) Потому что предметы они дают тоже крайне хреново, вменяемые учили в среднем куда лучше.

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

Старая и ограниченная x86

Можно пример новой и неограниченной архитектуры CPU с бОльшей производительностью на реально существующей железяке? Или пример запуска настольной ОС целиком на видеокарте, тоже неплохо будет :)

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

Скорость выполнения у Java была как у скриптовухи. Сам подумай: если у тебя s += «asd» создает новый объект и удаляет старый в Java, но то же самое происходит и в питоне — тогда в чем разница?

Интересный критерий. А если я на сях то же самое сделаю, си превратится в скриптуху? %)

Жаба компилируемый язык со строгой статической типизацией, какая скриптуха, ты о чём вообще.

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

Если забыть, что она никогда не была скриптовухой — то да %)

Java транслировалась в байткод, который по уровню абстракции представляет собой подобие кобола с поддержкой виртуальных таблиц методов и прочих достаточно продвинутых операций, но без трансляции сложных формул. Это весьма близко к байткоду питона и отличается лишь наличием в байткоде питона большого числа операций с ассоциативными массивами — та самая динамическая типизация. Если ты не знал — интерпретатор CPython не умеет исполнять текстовые файлы, все они сначала транслируются в байткод, в том числе при работе в режиме REPL.

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

В 1999м году уже была Java SE 1.2, вот взгляни на спеку тех лет, все это уже тогда в ней было.
А PHP на 1999й год фактически не существовал

PHP/FI 2, 1997 год: https://www.php.net/manual/phpfi2.php#upload
Да, реализация к тройке была серьезно переработана. Но, блин, ты же не скажешь, что до Python 3.0 питона не существовало? Или до 2.0.

Даже в 2003-2004м это было расширение для Apache, оно так и называлось mod_php и считалось скорее шаблонизатором чем отдельным языком.

Даже после 2004 его использовали в режиме «одна программа на один запрос» — лишь с оптимизациями, которые позволяли таки не запускать каждый раз новый процесс. Например, wordpress именно так и работает. Модуль для апача был разработан аж в 1997 году:
https://github.com/php/php-src/blob/2a854ca8b9e94ea75e949edb1283157b0daad617/...

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

Не спорю. Но массовая часть инета была на флеше.

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

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

Уже лучче, детектор подкалибровал наконец. Другое дело, что по поводу «передать их новому поколению» таки нужно уточнить, потому что я встречал много мегаофигенных челов, которые умеют передавать знания, но их просто мало кто слушает. Я выше давал ссыль на Крейнина ­— кто вообще про него слышал на LOR-е не от меня? 95% массовых учителей-коучей-писателей толком не разбираются в теме, которую подают, но зато умеют «подавать» и «продавать» — но проблема не в них, а в том, что они просто удовлетворяют спрос. Спрос 95% людей, которые не умеют учиться. Нельзя научить, можно только научиться — у дрессировки околонулевая эффективность, в чем ты можешь убедиться, спросив у случайного взрослого человека что-то из школьной программы:
https://www.youtube.com/watch?v=8qUsywWuK-Y

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

Я туда просто не полезу, я на этом проекте в итоге руковожу из соображений «ну а кто кроме тебя?». Про «сбежишь» ты опять не угадал, детектор надо всё еще калибровать.

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

весьма близко к байткоду питона

Так как в любом языке можно найти что-то отдалённо напоминающее питон, а питон — это несомненная скриптуха, то при желании можно любой язык объявить скриптухой. Я понемаю.

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

Так как в любом языке можно найти что-то отдалённо напоминающее питон, а питон — это несомненная скриптуха, то при желании можно любой язык объявить скриптухой. Я понемаю.

Ага, щас полезем в словарь Ожегова за определением слова «скриптовууха» и выясним, что я таки неправильно это слово применил. Да ну естественно хрен его знает, что это такое, но PHP, Python, и Java имели подозрительно много общего на то время. так-то, если подумать, в байткоде питона тоже есть числа и строки со статической типизацией, а вся динамика выглядит примерно как Java, оперирующая одними Object с рефлексией — что, между прочим, вполне себе реализуемо на JVM, насколько мне известно.

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

Уважение за жесть и хардкор типа? :) Потому что предметы они дают тоже крайне хреново, вменяемые учили в среднем куда лучше.

Вот и я о том же — самые закостенелые спецы имеют кучу недостатков, потому нужно трезво понимать их место, и не ставить ретроградов на перспективные направления. Вот Торвальдс ­— классный сишник, но игру-шутер я бы его писать не поставил — одного взгляда на документацию к git достаточно для этого понимания:
https://git-man-page-generator.lokaltog.net

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

Жаба компилируемый язык со строгой статической типизацией, какая скриптуха, ты о чём вообще.

С введением стирания типов это больше не строгая статическая типизация.

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

Жаба компилируемый язык со строгой статической типизацией, какая скриптуха, ты о чём вообще.

С каких пор java компилируемый язык ? А python c его *.pyo тоже компилируемый что ли ?

P.S. @byko3y не увидел вашего сообщения. +1 Вам.

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

У них был какой то ли Грааль то ли еще что то такое. Там интрепретатор типа JAVA работал поверх JVM.

В Python кстати с версии 3.6 ввели аннотация типов, не обязательную. Хз, может скорость работы повышает …

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

У них был какой то ли Грааль то ли еще что то такое. Там интрепретатор типа JAVA работал поверх JVM.

Cython умеет обычный питоний код компилировать в статику. Только толку в этом нет, работает оно с той же скоростью, если не медленнее.

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

Так вот: ни интерпретируемость, ни динамическая типизация, ни сборщик мусора не представляют собой фундаментальных проблем, как я уже частично пояснил. Проблемы возникают, если у тебя каждая мелкая операция приводит к аллокации и деаллокации маленьких кусков памяти, если каждая мелкая операция требует косвенного доступа, как то хэш-таблица->ячейка->объект или объект->vtable->метод. Если у тебя операции достаточно большие и происходят без косвенности-аллокаций, то накладные расходы на интерпретацию вообще становятся незаметными.

В Python кстати с версии 3.6 ввели аннотация типов, не обязательную. Хз, может скорость работы повышает

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

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

Cython умеет обычный питоний код компилировать в статику.

Вспомнил как это фигня называется. Груви. К нему еще был фрамеворк аля Рельсы … вот он был как раз Грааль, вроде.

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

В Python кстати с версии 3.6 ввели аннотация типов, не обязательную. Хз, может скорость работы повышает …

Type hints для людей ввели. Без неё более менее большая программа разваливается на куски. До появления type hints была мода делать огромные блоки с комментариями где описывался тип каждой переменной.

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

Ничего не повышает, разве что немножко упрощает статический поиск багов

В рантайме их действительно нет, это для людей и для IDE ошибки ловить. Полностью опционально, если не нравится - типы можно не расставлять. И в отличие от typescript - это все тот же язык, никаких транспайлеров не нужно.

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

J2EE проприетарное говно, а Spring свободный фреморк от сообщества.

J2EE - набор спецификаций. Из опенсорцных реализаций как минимум Wildfly и Glassfish существуют с незапамятных времен. Spring появился и стал популярным потому, что в EE тогда было сложно делать относительно простые вещи, а не как открытая альтернатива закрытой. Сейчас все в целом гораздо приятнее стало.

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

Спорно. Мне важно заюзать __doc__ и увидеть что ему давать на входе а что получу на выходе. Все остальное мне как бы и не нужно, если я не начну это дело копать …

P.S. Хотя в принципе зависит от IDE … ну по крайне мере это не будет тащить питон 3.6 и выше.

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

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

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

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

alex0x08 ★★★
()