• Незамеченное IT
    +1

    Это очень хороший вопрос, и тут я на вашей стороне :-) Сейчас я разобраюсь с GraalVM и пытаюсь популяризовать её в широких народных массах. Одна из основных частей технологии — это так называемый Polyglot Runtime, позволяющий быстро и без оверхеда пистать приложение сразу на куче языков, выбирая нужный под задачу.


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


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


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


    Попробуйте объяснить бизнесмену, почему он должен обучать свои десять тысяч разработчиков не одному языку (Java или JS), а сразу двум (Java+JS). В конечном итоге все упирается во время, деньги, скорость вывода продуктов на рынок, и так далее. Обучение и зарплаты сотрудников — это очень большие расходы. Коммуникация между разработчиками — это очень большие расходы (есть формальное объяснение в "мифическом человеко-месяце"), а несколько языков (и несколько связанных с ними программных платформ) увеличивают сложность коммуникации.


    Да, писать задачу на языке, удобном для этой задачи — это очень приятно для программиста. Далеко не всегда очевидно, что это действительно будет экономить деньги. Например, сейчас многие пишут веб-фронтенды на Java хотя камон, Java вообще никак для браузера в его текущем виде не подходит. Многие пишут бэкенды на JS, хотя JS для хайлоадной системы это кошмар и ад. Но пробиться сквозь простую логику, что раз у нас уже есть 2 тысячи JS разработчиков, нафига нам покупать еще тысячу джавистов или упаси бог C++-ников, если можно просто перекинуть JS разрабов на бэкенд — очень сложно эту логику пепреплюнуть.


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

  • Незамеченное IT
    –1

    Сам Ритчи был одним из авторов Юникса, вовсе не очевидно, что юникс бы написали вообще. Вы это хотели услышать?


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

  • Незамеченное IT
    +1

    Я не только люблю использовать Java, но и постоянно пишу про неё на Хабр :-) В общем-то, это основная и практически единственная тема, про которую я пишу на Хабр.


    Например, сейчас я дико увлечен проектом по переписыванию рантайма Java с C++ на Java. Сейчас про это речь идет в проекте GraalVM, но целиком это называется Project Metropolis и поддерживается основными архитекторами Java-рантайма. Так что да, безусловно, я бы хотел увидеть написанным на джаве вообще всё, и работаю в этом направлении.


    Но мы не одни такие. Например, еще есть JavaScript, и сейчас бэкенды серверных приложений стало нормально писать на JS, и переводить на JS софт, который ранее был написан на Java и С/C++.


    Это совершенно нормально — не связываться с излишней сложностью, когда с ней можно не связыватья. Введение дополнительного языка — это сложность. Использование Си позволяет избавиться от неё. В чем проблема?

  • Незамеченное IT
    0
    Надеюсь сюда включится кто-нибудь, чей первый язык программирования не был Java :-)

    Про FORTRAN vs C. Если ты запускаешь свой код на железе напрямую, без операционной системы в качестве прослойки (или если это какая-то встроенная система), то нужно управлять железом напрямую. А для этого нужен доступ к настоящим адресам памяти. Си предоставляет эту возможность посредством поинтеров. Насколько понимаю, в FORTRAN существует концепция поинтеров, но они не эквивалентны поинтерам в Си. Фортрановские поинтеры нельзя использовать для прямого управления железом, что могло быть огромной проблемой в эпоху, когда на макбуки еще не ставили 64 гигабайта оперативной памяти, которые позволяют из любого языка вызывать любой, не включая мозг. Фортран наверняка использовали вместе с Си и даже ассемблером. И тут сразу возникает вопрос — нафига козе баян, зачем использовать три языка, если можно обойтись одним?
  • Незамеченное IT
    –4
    Когда ты делаешь что-то хорошо и рассказываешь — как, это действительно работает как реклама. Стив очень хорошо управлял этим приемом. (Я, безусловно, не так крут.) Идея эппловских презентаций не только в анонсе продукта, но и том, чтобы донести некое видение светлого будущего, частью пути к которому является этот продукт. В долгосрочной перспективе это видение может оказаться важней конкретных продуктов. Возможно, вся жизнь Стива отвечала на вопрос — как выглядит это будущее?

    Я часто пересматриваю вот эту презентацию.

    «This is a day I’ve been looking forward to for two-and-a-half years.

    Every once in a while, a revolutionary product comes along that changes everything. And Apple has been – well, first of all, one’s very fortunate if you get to work on just one of these in your career.

    Apple’s been very fortunate. It’s been able to introduce a few of these into the world.»

    И дальше по тексту. Очень рекомендую к просмотру.

  • Незамеченное IT
    +1
    Буржуй! А у меня так и не было книги Ритчи) В универе преподавателем был товарищ Никита Каменский и сказал, что пока мы не выучим стандарт Си на зубок, никто отсюда не выйдет. Поэтому денег хватило распечатать стандарт Си-99 на принтере и читать на бумаге. Хмм… Не сказал бы, что это как-то помогло, учитывая количество пересдач. Но из ностальгических соображений Стандарт все еще лежит на полке в Новосибирской квартире.

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

    Попробуй у себя провести этот эксперимент с разработчиками, которые вообще не писали на Си и Си++, например, на новичках-фронтендерах. Какие будут результаты? Как их можно интерпретировать?
  • Незамеченное IT
    +6
    Ребятки, уже полсотни плюсов и ни одного комментария.
    Все читают, но не комментят.
    Мне страшно.
  • Deep Learning: Распознавание сцен и достопримечательностей на изображениях
    0

    Эй, хаброюзер, что за наезды! :-)


    А ну куда побежал, предъяви циферку из выхлопа!


    OUR=https://habr.com/company/jugru/blog/419501/
    THEIR=https://habr.com/company/mailru/blog/359214/
    
    diff -U 0 <(curl $OUR) <(curl $THEIR) | grep -v ^@ | wc -l

    (Домашняя работа: правильный ли это способ считать количество изменений? Как можно сделать лучше?)


    Мы ж типа тут конференции делаем. И главное не статья, а анонс видео с конфы. Видео нужно для тех, кто больше привык воспринимать информацию глазами и ушами.


    С другой стороны, не приложить текстовую расшифровку было бы странно.


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


    Так что, тут компромиссное решение — расшифровка, иллюстрации — скриншоты реального видео.


    Если бы дифф мог распознавать русский то понял бы, что это две совершенно разные статьи: наша — это расшифровка (по сути, продвинутые субтитры), а их — это именно полномасштабный текст.

  • Чистая прагматичная архитектура. Мозговой штурм
    0
    Сейчас очень популярно говорить, что наследование вообще нигде не нужно. Особенно, налседование реализации. Возможно, просто дань моде.
  • Яндекс блокирует аккаунты, к которым не привязан номер телефона
    +1
    Все очень просто. Не пользуйтесь Яндекс-Почтой. Яндекс намеренно последовательно испортил свой сервис, бессмысленно там оставаться только по ностальгическим причинам. Голосуйте ногами!
  • «Здесь нет начальника»: о работе с Open Source и Apache Ignite в Сбербанк-Технологиях
    0

    Раз уж ты упомянул подкаст (а большинство о нём, вероятно, ни сном ни духом), вставлю тут некий shameless plug.


    Вот тут появляются текстовые версии: ссылка.


    Также всё что там происходит — дублируется в подкасте "Разбор Полётов".


    Это не полные копии, а взаимодополняющие. В "Разборе" мы коротко обсуждаем каждую новость, и это удобно потреблять, например, пока едешь в такси на работу. А в текстовой версии новости идут удобным списком чтобы бродить по ссылкам.


    Хаброверсию дайджестов мы пока не запускали, да и на Хабре вроде как не анонсировали переход к аудиоформату. "Суслика видишь? А он есть!".


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


    Более того, подкину проект, на который мне лично не наплевать: GraalVM. Если Андрей и PVS-Studio проанализируют его, обещаю в явном виде осветить это в дайджесте и подкасте, при надобности — поучаствовать в выпуске статьи на Хабру, при надобности — помочь своими силами в анализе и законтачить с корными разработчиками.

  • «Здесь нет начальника»: о работе с Open Source и Apache Ignite в Сбербанк-Технологиях
    +1
    Так у них и компания не про джаву :-) Точнее, была вот до ближайшего времени.

    Андрей написал комментарий в 17.53 Москвы, наверное запарился в конце рабочего дня и забыл переформулировать обычное предложение для хаба Java. (То, почему ты отвечаешь в полночь Москвы, а я — в четыре утра Новосибирска — замнём для ясности :-).

    Давай исходить из того, что Андрей просто жёсткий олдскульный чувак, не хочется подлизываться в первом же комментарии, и сурово зашёл с C++ карт!

  • «Здесь нет начальника»: о работе с Open Source и Apache Ignite в Сбербанк-Технологиях
    +1
    Ну, это же интервью. Как разговор пошёл — так и пошёл. Или ты бы хотел, чтобы я перетасовал абзацы и сделал вид, что так и было?
  • «Здесь нет начальника»: о работе с Open Source и Apache Ignite в Сбербанк-Технологиях
    +1
    Эй минусующие, спокойно) Женя углубился в Android и ещё не знает, что у PVS-Studio только что релизнулся новый движок для анализа джавы.

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

    На Apache Ignite, вероятно, будет не наплевать.
  • «Здесь нет начальника»: о работе с Open Source и Apache Ignite в Сбербанк-Технологиях
    0
    Привет! Я больше уже не из Сбертеха, но могу предположить. Попробуй проверить Apache Ignite :-) На что смотреть в особенности: движок SQL, свежезакоммиченная топология вида «звезда». Как это сделать — без понятия.
  • Разработка на CUBA — большой шаг в сторону от Spring?
    +3
    Тут много негативных отзывов про велосипедостроительство. Хочется разбавить их противоположным мнением.

    Фреймворк — это сильно больше, чем набор его элементов.

    Нет вообще никаких проблем склеить на синюю изоленту всякие Spring Boot, Spring Security, Hibernate, Liquibase, и написать админку пользователей за следующий вечер тоже проблем нет.

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

    Если кто-то предлагает фреймворк, ну уж точно там ценность не в составе persistence.xml =) Ценность в опыте. Чтобы такой опыт получить, надо взять какую-то свою связку компонентов и сделать на ней хотя бы несколько проектов, а лучше — несколько десятков или сотен. Каждый проект будет полировать фреймворк и связанные с ним способы работы, как вода точит камень. При этом фреймворк-то может и не изменится почти кроме разных тонких мелочей, которые как раз этот опыт отражают.

    И кстати, тут прямо в комментариях есть живой источник этого опыта. Про который, собственно, и можно спрашивать, вместо того чтобы пытаться загнобить автора ;)

    По сабжу — авторы молодцы, жгите ещё!
  • Разработка на CUBA — большой шаг в сторону от Spring?
    0
    А мне вот не нравится Lombok. И хотелось бы иметь еще какие-то способы кроме Lombok достигать похожих эффектов. Хорошо что они, эти способы, хоть где-то имеются.
  • Джеффри Рихтер приезжает в Россию: анонс конференции DotNext 2018 Moscow
    0

    А вы приходите на конференцию и спросите :-) Вообще, мы попробуем договориться с ним об интервью для Хабра, и если он согласится, то можно задать ему и этот вопрос тоже. Пожно ещё каких-нибудь вопросов сюда накидать!

  • Kotlin DSL: Теория и Практика
    0
    Ну это уже совершенно другая история. Когда кто-то принял решение за тебя (например, на работе был важный митинг о судьбе проекта, а ты в нем не участвовал) — что посоветовать? Кусать локти и в следующий раз ходить на митинги и форсировать на них свое мнение? Уволиться? Тут та же фигня — ты пропустил тот митинг, когда определяли дизайн мавена.
  • Kotlin DSL: Теория и Практика
    0
    Так автодополнение в IntelliJ IDEA должно работать по Kotlin DSL, разве нет?

    > красиво это может быть только для автора DSL

    не нравится DSL — не используй его. Точно так же, как не нравится Java или Kotlin — пиши на чем нравится. Все как всегда)
  • Kotlin DSL: Теория и Практика
    +1
    В естественных языках есть такая штука — номинализация. Действие можно описать как предмет.

    Опять же, если взять LISP, то у нас есть свойство гомоиконности. Если мы «программируем на Yaml», то оно дается нам автоматически — просто вместо компилятора трансляцией из предметный области в AST занимаемся мы сами, наш мозг)

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

    И наоборот — можно деноминализировать структуру данных в набор действий. Например с помощью паттерна Builder.

    Таким образом, действия и данные на каком-то уровне абстракции языка могут быть взаимозаменяемыми.

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

    Ну вообще да, программисты затем и нужны, чтобы решать сложные задачи :-) Где нет такой потребности, программисты не нужны.
  • Kotlin DSL: Теория и Практика
    0
    А вот тут хотелось бы подискутировать! То есть, жуткий адь в Мавене вас таки полностью устраивает?

    Есть идея, что любая достаточно выделенная предметная область образует свой язык. И либо ты делаешь красивый DSL на удобных инструментах, либо делаешь то же самое, но завуалированно, например натянув глобус на сову, или что угодно на XML, или куда хуже — на JSON или Yaml без схемы
  • Выходные, которые нельзя пропустить. TechTrain в Питере
    +1
    1-2 сентября, они есть на сайте. Добавлю в пост.
  • Выходные, которые нельзя пропустить. TechTrain в Питере
    0

    "Заходят в бар эйчарка, манагер и блогир. Эйчарка говорит: коллеги, не могли бы вы помочь оценить деньги и время на помывку всех окон в Лондоне? Манагер ей отвечает..."


    Конец анекдота не знаю, теперь собираюсь сходить на Техтрейн и уточнить.

  • Что не так с возвращением Geektimes на Хабр
    0
    С этим совершенно точно нужно что-то сделать.
  • GraalVM: смешались в кучу C и Scala
    0
    Хорошая статья. Спасибо что продолжаешь писать. Так победим!
  • Инструменты тестировщика
    0
    Да, я последний месяц в основном помогаю с оформлением существующих докладов, а не пишу новое. По-моему, это довольно полезно: действительно хорошие статьи обретают вторую жизнь и начинают полноценно гуглиться.
  • Открытая бесплатная трансляция конференции по тестированию — Heisenbug 2018 Piter
    0
    Какое-то время они, скорей всего, останутся. Они не удаляются через 10 секунд после окончания конференции.

    Но гарантий о их сохранности никаких дать не могу.

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

    В целом, у меня такая рекомендация: лучше посмотреть асап как появится возможность.
  • От дополненной реальности до Kotlin: как прошёл Mobius 2018 Piter
    +3
    Ну там, как бы, чуть ли не каждый второй имел аккаунт на Хабре. С участниками можно просто вспомнить, как это было.

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

    «Частично» сказал для перестраховки. Бывает, что докладчики не хотят выкладывать запись в открытый доступ. Бывают еще какие-то сложности, например, с периодически сходящим с ума ютубом. Все это надо проверять и делать, прежде чем обещать. Как говорится в пословице, будет день — будет пища.
  • От дополненной реальности до Kotlin: как прошёл Mobius 2018 Piter
    0
    Нууу, батенька, всё уже — конференция прошла, поезд уехал. Все участники получили видеозаписи всех докладов. Через несколько месяцев, наверное, частично выложим их в открытый доступ.
  • Смысл тестирования — в процессе, а не в оставшихся артефактах. Майкл Болтон и Rapid Software Testing
    0

    Если касаться конкретно Болтона и конференции — то посмотреть описания докладов (раз, два) и предположить, отвечают ли они на твой вопрос. Еще Болтона можно встретить в дискуссионной зоне и задать вопросы — он консультант, и на вопросы должен отвечать очень хорошо.


    Если вообще, то как мы знаем, существует несколько "школ" тестирования. Context-Driven школа (насколько я это понял) говорит, что результаты тестирования — это отображение мгновенного состояния проекта по самым важным для этого момента времени метрикам. Вот тут есть какая-то статья про это. Соответственно, мы приходим к понятию контекста, являющегося функцией от времени, и общего решения "как мне теперь выбирать" не существует. Нужно каждый раз думать головой и решать изобретательские задачи. Компьютер не умеет решать изобретательские задачи — умеет только человек, поэтому нам так нужны тестировщики. Некоторые интересные стратегии можно подсмотреть в докладах, что-то можно понять по какому-нибудь ТРИЗу, но это всегда будут очень "высокоуровневые" идеи, а не скрипты "делай раз, делай два".

  • Смысл тестирования — в процессе, а не в оставшихся артефактах. Майкл Болтон и Rapid Software Testing
    +2

    Да, цель статьи — познакомить с Майклом и RST, если кто-то его еще не знает.


    У них есть своя консалтерская контора, которая ведет тренинги по тестированию. Так что практического опыта ответов на вопрос «если у вас проект А то вы делаете Б» у него предостаточно.


    Другое дело, что Болтон — это скорей не про простые шаги «делай А, делай Б», а про то, как думать головой.


    (По этому поводу мне почему-то вспоминается доклад другого товарища с Гейзенбага-2016 — No Such Thing as Manual Testing — он доступен прямо сейчас на ютубе).

  • IntelliJ IDEA 2018.1 — улучшенный анализ кода, поддержка частичных коммитов Git, Android Studio 3.0 и многое другое
    0
    Нет, не могу. Но помню, что там был какой-то нереально простой воркэраунд. По-моему, сделать баш-скрипт из одной строчки которая запускает Идею, и дальше всегда запускать Идею из консоли.
  • Интерфейсы: как сообщать пользователю, если «Упс, что-то пошло не так»
    0
    Еще проблема решается парочкой кодеров, брошенных на чтение логов и быстрый фикс ошибки
  • JavaScript, Java, какая теперь разница?
    0
    Интересный вопрос, надо попробовать.
  • JavaScript, Java, какая теперь разница?
    0
    Вопрос как раз в том, что если я не хочу веб на джаве. Джаваскрипт для этого — куда более подходящий инструмент (по крайней мере, пока webassembly вот в этом зачаточном состоянии).
  • JavaScript, Java, какая теперь разница?
    0
    В Граале как минимум три проекта: оптимизирующий джит-компилятор, тулсет для создания языков программирования и клозед-ворлд виртуальная машина. Тема про языки программирования делится на подтемы типа гральжс, трюфельруби, сулонг, итп.

    Если писать о каждой из этих тем глубоко и одновременно, то выйдет сочинение с объемами Кнута, это немного неприемлемо для Хабра

    Другие темы тоже будут, но попозже. Слона можно съесть по кусочкам.
  • JavaScript, Java, какая теперь разница?
    +2
    Можно. Но этот пост — про Graal. Вести аргументированные дебаты про GWT я сейчас не смогу, это отнимает много времени (а мне еще пост о программе DotNext сегодня выпускать!)
  • JavaScript, Java, какая теперь разница?
    +1
    Ну например в том, что когда-то давно ты обязан был делать микросервисы, а теперь — не обязан.

    Например, у микросервисов безумно дорогая стоимость запроса, а вызов через Graal стоит как обычный джавовый метод. То есть твой вопрос можно довести до абсурда таким вопросом: зачем нам писать в языке программирования какие-то функции и методы, давайте вместо каждого метода вызывать REST-сервис?

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

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

    Имхо, это должно особенно понравиться как раз фуллстек-разработчикам. Когда одна команда пишет бэк, и другая — фронт, это одно, ты всегда можешь скинуть заботу по интеграции на кого-то еще. Когда ты пишешь все сам, от базы данных до анимаций во фронте — то ой, уже задумываешься над более оптимальными решениями. Можно парить мозг подрядчику — но крайне невыгодно парить мозги самому себе.
  • JavaScript, Java, какая теперь разница?
    0
    Сам Пraal — это не proof of concept, а отличная, хорошо работающая вещь. Над которой работают лучшие в мире специалисты по VM, рантаймам, языкам, и так далее.

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

    А если говорить философски, мне кажется что органиченность применения — это нормально. Особенно когда ты четко принимаешь эти границы.

    Бесшовный интероп — это особый способ оптимизации, в данном случае он оптимизирует несколько вещей: a) объем труда разработчиков на организацию собственного интеропа б) перфоманс интеропного кода при пересечении границы языка

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

    У меня в проектах были и есть такие проблемы (например, как известно, сайты JUG.ru Group создаются статическим генератором).