LINUX.ORG.RU

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

 , , ,


2

7

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



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

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

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

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

Современная продолжительности жизни к медицине имеет мало отношения

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

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

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

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

Я вообще буквально живу на лекарствах, так бы помер лет в 20-25. А с «плохой химией» уже почти 40 и чота даже для общества полезное делаю, некоторым людям напрямую помогаю.

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

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

Да это же диверсия против SkyNet не иначе.

Неужели ты на стороне роботов и теплая человеческая плоть тебя больше не привлекает? Роболюб? Робофил? Практикуешь роболюбовь?

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

К роботизации всё равно придём. Плоть слишком много недостатков имеет и её возможности, видимо, закончились. Дальше «естественно» расти уже некуда, если хотим расти в принципе.

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

Ну тогда уж к киборгизации чем к роботизации, это если про рост человечества.

А если брать по Циолковскому то тогда в энергию или поле, там вообще без материи…

:)

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

Киборгизация, да.

А если брать по Циолковскому то тогда в энергию или поле, там вообще без материи…

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

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

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

Я тоже читал про это. И еще там же было что все это нейтрализуется современным питанием и экологий вокруг …

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

пока хоть вышедшее из строя мясо заменять техникой и к мозгу

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

Но так ассоциация стоматологов была категорически против !

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

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

В популярность Си еще можно поверить. Но в то, что Lisp (какой из, кстати?) был на втором месте… Не PL/1, не Cobol, не Fortran, ни SmallTalk, ни Ada, ни Pascal с кучей диалектов и Modula-2, ни еще куча всякого разного, а именно Lisp… Разве что-то в каких-то специфических академических кругах.

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

Пилять, это даже не hello world, а вообще какая-то редкая срань, не имеющая к продакшен коду на С++ никакого отношения.

Не справляется ваш психотерапевт с вашей проблемой(мами), не справляется…

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

Я так радовался, когда у меня вместо выдранного зуба через месяц вылез ещё один с той же стороны. Сделали рентген, сказали ещё три зуба так же можно вырвать с заменой :)

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

Киборгизация, да.

Ну и зачем? Чтобы фантазии про 200-летних кровососов оказались реальностью? Они ещё и все будут с напрочь поехавшей крышей. И сейчас то уже есть большие сомнения насчет адекватности илитки. Вас, плебеев, никто киборгизировать не станет конечно же. Если сохранится минимальная медицина (в чем я сомневаюсь), уже хорошо.

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

Сделали рентген, сказали ещё три зуба так же можно вырвать с заменой :)

Тут главное вовремя остановиться и задуматься что остальные органы заново не отрастут.

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

Это теперь мой личный бложек.

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

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

Надо не бложек, а стендап затевать.

Рэп баттл.

Пусть под низкий бит зачитает как ненавидит петон и джаву. Заодно и вся муть про «тяжкое детство в академической среде» в тему зайдет.

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

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

С Питоном беда в том, что наставят в систему по десять версий, наделают переменных среды и путаются.

У меня есть способ борьбы с такой ситуацией, но не уверен, что идеальный: все библиотеки скачиваю как wheel через pip, вручную распаковываю и кладу прямо в проект. Если там не только чисто питоновские файлы, но и pyd (so), то добавляю директорию пакета через site в PYTHONPATH. Так и система не засоряется, и проект переносится на другой комп без Internet и заморочек с pip. Понятное дело, что это работает, если ОС одинаковые.

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

Ну к джаве я и сам не очень хорошо отношусь.

все библиотеки скачиваю как wheel через pip, вручную распаковываю и кладу прямо в проект. Если там не только чисто питоновские файлы, но и pyd (so), то добавляю директорию пакета через site в PYTHONPATH. Так и система не засоряется, и проект переносится на другой комп без Internet и заморочек с pip. Понятное дело, что это работает, если ОС одинаковые.

Представляешь, но в джаве (к которой ты не очень хорошо относишься) всего этого цирка нет. Совсем нет.

Так может стоит поменять свое отношение ради решения реальной задачи?

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

Ну вот ссылка: https://stackoverflow.com/questions/25342106/what-is-the-java-equivalent-of-nuget . Автор темы пишет:

After several hours of following dead ends, installing Maven, customizing environment variables and chasing down dependencies, I eventually found that in IntelliJ under project structure it is possible to add a library directly from Maven. Perfect!

Всё там есть.

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

То что в java-проекте можно рукожопить - никто не спорит. Но зачем?

Все зависимости добавляются в pom.xml и автоматом подхватываются в любой ide.

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

Понятия не имею чем там автор поста занимался, у него там и андроид сборка и обычная джава и мавен и сборка из Intellj Idea. Видимо на эквилибриста учится.

Тебе что-то конкретное нужно узнать про сборку на джаве? Пиши, подскажу.

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

Немного раскрою про venv. Если в системе несколько virtual environments, то зачастую при установке библиотек через pip, они улетают непонятно куда. Тут нужны прямые руки. При ручной распаковке wheel контроля больше.

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

Зачем она нужна, если C# намного лучше (по лаконичности, быстродействию, возможностям и т.д.)?

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

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

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

Все остальное на таких задачах стабильно загибается либо не поддается отладке.

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

Если в системе несколько virtual environments, то зачастую при установке библиотек через pip, они улетают непонятно куда.

Про то что копия pip ставится внутрь созданного venv окружения в курсе? Про bin/activate?

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

Да я понимаю, что «Best Practices» для людей, которые с консолью на ты. А нам, простым мышевозам что делать? Практика показывает, что люди путаются и библиотеки улетают не туда. У меня начинающий коллега так неделю мучался и меня изводил.

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

Ты какую-то хню пишешь. Ты точно кодер? Хотя от вас, DOT NET’чиков, не знаешь что ожидать :)

Уже больше 15 лет в Java мире для управления зависимостями используется Maven и лет 10 назад появился Gradle. Вижу что там вопрос из 2014 года, но тогда уже был даже Gradle. А вот .NET отставал в способах управления зависимостями, да и IDE у него была никакая (без ReSharper).

В java проектах никто не привязывается к IDE, вся конфигурация с перечнем зависимых библиотек прописывается в pom.xml (в случае maven) или build.gradle (Gradle соответственно).
Новый проект создаться как maven или gradle проект а потом импортируется в любую IDE (Idea, Eclipse, NetBeans). IDE читает билд файл и производит самоподстройку. Поменял build.gradle или pom.xml – сказал IDE чтоб она перечитала билд файл (перестроила свои конфиги, обновила classpath, чтоб быть в когерентном состоянии).

Кстати, почти везде в java мире в билд файлах версии зависимостей на сторонние библиотеки прописываются абсолютные, т.е. без шаблонов (т.е. 2.3.5 а не 2.3.*) . Чтоб артефакты были точно такими как на девелоперских машинах, и в случае обнаружения бага можно быть почти уверенным что проблема в коде проекта а не в сторонней либе. По необходимости зависимости обновляются перед релизами самими девелоперами (на такое заводят минорые задачи на тасктрекере).

И если иногда хотеться все зависимости запихнуть в один JAR, допустим когда сборку нужно передать клиенту в более удобном формате, типа JAR и скрипт для запуска (2 файла), тогда это делаться через какой-нибудь maven-assembly-plugin. Правда последний раз я такое делал лет 10 назад.

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

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

Да. Я тоже придерживаюсь такого мнения, хотя MS в последнее время много сделал для переноса на Linux.

Каких-то крупных решений на дотнете нет до сих пор даже не венде. Крупных это где пару сотен серверов, хотя-бы.

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

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

Ты точно кодер?

Я не кодер. У меня шире обязанности.

Описанная система управления зависимостями Java выглядит вполне надёжной. В принципе, и в Питоне есть «requirements.txt», но это почему-то не спасает.

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

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

Когда ты девелопер то у тебя есть maven и gradle который полностью берет на себя заботу о зависимостях.

А вот в серверах приложений (application server, servlet container) хостить сразу несколько приложений уже не получится, ведь classpath один, артефакты разных версий там быть не могут. Потому повсеместно на одном сервере приложений был только один сервис.

Ну а про maven-assembly-plugin я уже рассказал, это тоже такое решение для дистрибуции приложения обычным пользователям.

«Один инстанс JVM – один сервер – одно приложение» (с) :)

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

Каких-то крупных решений на дотнете нет до сих пор даже не венде. Крупных это где пару сотен серверов, хотя-бы.

Продолжу ещё немного. Java - это язык от корпораций и для корпораций. Соответственно и задачи такие на пару сотен компьютеров. Да даже задача «одна программа на один компьютер» - это тоже не для простых людей.

Если же у нас небольшой проект, разрабатываемый одиночкой или даже крошечной командой, то нужен более «народный» язык. И тут сейчас выбор небольшой. Вероятно, только си, tcl и FreePascal (или Pascal ABC). И то я не уверен.

Питон был «народным» языком, но всё больше становится корпоративным. Delphi был «народным» языком где-то до 5 версии. Потом испортился.

Всякие Nim, Crystal и прочие поделки - тоже непонятно для кого. И не от корпораций, но и не для народа.

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

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

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

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

Никакой «народности» и «корпоративности» в обычных языках разработки общего назначения не существует.

Упомянутый выше DBeaver как раз пример такой домашней разработки, выросшей в большой и известный проект. Причем там не просто джава а еще и Eclipse RCP.

Вообщем берите то что знаете лучше всего и фигачьте проект.

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

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

Конечно, нет. Я не буду писать сайт на си, а прошивку для микроконтроллера на php. Язык выбирается под задачу.

DBeaver как раз пример такой домашней разработки

Неудачный пример. Человек из корпораций сделал инструмент для корпораций. Может ли база данных быть «народной»? Да, если это что-то типа SQLite. Все остальные базы данных - для корпораций.

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

А вот в серверах приложений (application server, servlet container) хостить сразу несколько приложений уже не получится, ведь classpath один, артефакты разных версий там быть не могут.

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

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

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

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

Статистика, ага... И когда в последний раз ты пытался ею интересоваться? А она вообще-то есть, и она довольно однозначно говорит, что никакой взаимосвязи нет.

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

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

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

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

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

Я вообще буквально живу на лекарствах, так бы помер лет в 20-25. А с «плохой химией» уже почти 40 и чота даже для общества полезное делаю, некоторым людям напрямую помогаю.

В последний раз был в больнице лет 5 назад. Ничем не помогли так-то.

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

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

А в чом прикол? У тебя третье поколение зубов выросло, что ли? Я слышал, что к сотне лет такое может случаться, но не раньше.

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

С Питоном беда в том, что наставят в систему по десять версий, наделают переменных среды и путаются.

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

Так и система не засоряется, и проект переносится на другой комп без Internet и заморочек с pip. Понятное дело, что это работает, если ОС одинаковые.

«Ваше приложение запустится на любой ОС, если эта ОС — Linux». У ядра линя стабильный ABI, потому это более-менее стабильная платформа для распространения бинарей.

byko3y ★★★★
()