The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Система машинного обучения для синтеза типового кода на языке Java

27.04.2018 09:34

Группа исследователей из университета Райса (США) развивает интеллектуальный ассистент разработчика Bayou, позволяющий частично автоматизировать процесс написания кода на языке Java. Проект использует алгоритмы глубинного машинного обучения и модель, натренированную на примерах рабочего Java-кода, представленного на GitHub. Наработки проекта открыты под лицензией Apache 2.0, код написан на Java и Python. Модель машинного обучения реализована при помощи платформы Tensorflow и инструментария scikit-learn.

На основе задаваемых разработчиком меток c упоминанием методов API и типов данных, которые следует использовать в коде, Bayou позволяет синтезировать готовые программные блоки с реализацией шаблонов использования Java API, соответствующих контексту уже имеющегося кода. Иными словами, Bayou позволяет использовать методы машинного обучения для воплощения парадигмы разработки copy&paste, при которой разработчик находит и использует готовые куски кода, применяемые в других проектах.

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

Online-демонстрацию возможностей Bayou можно найти на данной странице. Например, при возникновении задачи написания кода для чтения из файла разработчик может добавить метку "{ /// call:readLine }":


   import java.io.File;
   public class Test {
       void read(File file) {
           {
              /// call:readLine
           }
       }
   }

После обработки данной конструкции будет предложен готовый вариант кода:


   import java.io.BufferedReader;
   import java.io.File;
   import java.io.IOException;
   import java.io.FileNotFoundException;
   import java.io.FileReader;
   public class TestIO {
     void read(File file) {
       {
         FileReader fr1;
         BufferedReader br1;
         String s1;
         try {
           fr1 = new FileReader(file);
           br1 = new BufferedReader(fr1);
           s1 = br1.readLine();
         } catch (FileNotFoundException _e) {
         } catch (IOException _e) {
         }
         return;
       }
     }
   }

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

В текущем виде система требует задания достаточно точных меток, не поддерживает указание масок для типов и может использовать лишь ограниченный набор API (java.lang, java.io и java.util). В будущем разработчики намерены реализована возможность формирования запросов на естественном языке и добавить функциональность интерактивной оболочки, позволяющей выбирать разные варианты кода и уточнять свои пожелания. В более отдалённой перспективе планируется обеспечить генерацию более сложного кода, включающего группы методов или классов.

  1. Главная ссылка к новости (https://www.theregister.co.uk/...)
  2. OpenNews: Анализ степени дублирования кода на GitHub
  3. OpenNews: Facebook открыл RacerD, статический анализатор для многопоточного кода на Java
  4. OpenNews: Facebook открыл код платформы Detectron для распознавания объектов на фотографиях
  5. OpenNews: Проект OpenNMT развивает систему машинного перевода на основе нейронной сети
  6. OpenNews: Проект по автоматической генерации кода, воспроизводящего интерфейс со скриншота
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/48503-bayou
Ключевые слова: bayou, code, ai, java, tensorflow
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (109) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 10:04, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Ничего, в скором будущем уже не потребуется знания  достаточно точных меток и тп.
    Возможно, вообще программист не понадобится. Нужен будет толко оператор, который ТЗ вводит в программу.
     
     
  • 2.3, Антон (??), 10:17, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +14 +/
    Ничего не будет такого. Программирование на более высокий уровень поднимется если только.
     
     
  • 3.95, Vkni (ok), 17:41, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ничего не будет такого. Программирование на более высокий уровень поднимется если только.

    Вот конкретно от этой инициативы ничего никуда не поднимется.

     
  • 2.7, анонимтут (?), 10:27, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +20 +/
    О COBOL говорили тоже самое;p
     
     
  • 3.79, Очередной аноним (?), 09:04, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да и SQL сначала предполагался как конечное звено, фронтэнд, в цепочке общения "обычной домохозяйки" с информационной системой. А на практике в некоторых запросах на много страниц без поллитры не разберешься.
     
  • 2.27, Аноним (-), 12:47, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не нужно будет печатать, нужно будет проверять, не факт что в человеко-часах это будет дешевле
     
  • 2.90, Alex (??), 15:28, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Скорее всего из этого появится новый мета язык.
    Описываешь модель какую-то, а потом эта модель преобразуется в программный код.
    Таким образом, разработка приложений станет быстрее, возможно где-то действительно программист будет нужен минимально, только для контроля данных или отладки.
    Появится новая профессия - мета-программист, который гораздо (в теории) будет эффективнее нынешних программистов, который будет писать на одном мета яызке, а его код будет компилироваться в тот, который наиболее подходит под задачу... Лет через 20-30 посмотрим, что из этого выйдет.
     
  • 2.92, Vkni (ok), 17:29, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Нужен будет толко оператор, который ТЗ вводит в программу.

    То есть, программист. Потому, что чёткое и однозначное ТЗ называется программой.

     

  • 1.2, Аноним (-), 10:04, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    > При возникновении задачи написания кода для чтения из файла разработчик может добавить метку "{ /// call:readLine }"

    И в чем суть машинного обучения здесь?
    Ровно то же самое десятилетиями успешно делается и без него.

     
     
  • 2.10, Анонимидзе (?), 10:50, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Так можно ж пару грантов под это дело распилить, особо не напрягаясь
     
     
  • 3.93, Vkni (ok), 17:29, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Так можно ж пару грантов под это дело распилить, особо не напрягаясь

    Вот это кажется самым разумным применением.

     
  • 2.12, Аноним (-), 11:00, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это как снипеты, только ни автор ни разработчики этой системы не знают какой код будет написан:
    корячишь ключевые слова после /// call:keyword и тебе выдаётся самый распространнённый код, подходящий к этим ключевым словам.

    Болванчик туповат, но как-то работает:
    /// call:exists

    выдаёт
          String pathname1;
          boolean b1;
          b1 = file.exists();
          return;

    причём это такие параметризуемые снипеты:
    /// call:exists call:remove
          boolean b1;
          boolean b2;
          if ((b1 = file.exists())) {
            b2 = file.delete();
          } else {
          }
          return;

    Наверное, эта забавная фишечка скоро будет в каждой крутой IDE

     
     
  • 3.13, лютый жабист__ (?), 11:19, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Наверное, эта забавная фишечка скоро будет в каждой крутой IDE

    То есть ТОЛЬКО в Intellij :) хотя я и сейчас половину проблемы решил Live Template-ами, а вторую половину alt+tab, 'grep -Ri keyword IdeaProjects/'

    Если только научится со StackOverflow подтягивать результаты, это было бы неплохо :)

     
  • 2.16, yyyy (?), 11:29, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Раньше такую кодогенерацию описывали правилами, и это было сложно, дорого и нево... большой текст свёрнут, показать
     
     
  • 3.19, yyyy (?), 11:33, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > То же самое относительно скоро (в ближайшие лет 10, я думаю) случится и с кодингом, не требующим сильно глубоких знаний. В большой степени он станет автоматическим переводом из ТЗ в код, достаточно пристойный и поддерживаемый.

    Качество пока не очень, но это пока. Лет 10 назад над статистическим переводом посмеивались ребята, пилившие перевод при помощи правил, а над нейронными сетями - ребята, занимавшиеся языковыми моделями.

     
  • 3.20, Аноним (-), 11:35, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Главное, чтобы наборы для обучения машинного кодинга были не от АНБ, ФСБ и прочих "добрых" контор.
     
     
  • 4.58, Аноним (-), 20:03, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да какая разница? Ключи всё равно потребуют сдать. Хотя бы от квартиры, где деньги лежат, если нет шифровальных....
     
  • 3.75, Анонимный Алкоголик (??), 05:30, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > автоматическим переводом из ТЗ в код, достаточно пристойный и
    > поддерживаемый.

    Компилятор однако. С некоего ТЗ. >:-)
    (только с крайне вероятностно работающим результатом, если будет делаться гм... конкретно вами. Личности такие...)

     
  • 3.96, Vkni (ok), 17:45, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > То же самое относительно скоро (в ближайшие лет 10, я думаю) случится
    > и с кодингом, не требующим сильно глубоких знаний. В большой степени
    > он станет автоматическим переводом из ТЗ в код, достаточно пристойный и
    > поддерживаемый.

    Ох. Профессия программиста автоматизируется с зарождения. И основное средство автоматизации называется "компилятор".

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

     
  • 3.108, freehck (ok), 02:24, 30/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ты не понимаешь, о чём говоришь Для языков используются нейронки потому, что у ... большой текст свёрнут, показать
     
     
  • 4.109, Vkni (ok), 02:28, 30/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Не лучше ли просто взять более высокоуровневый язык, вот в чём вопрос?

    И менее многословный, чем Java. Например, Haskell. :-)

     
     
  • 5.111, freehck (ok), 02:39, 30/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Не лучше ли просто взять более высокоуровневый язык, вот в чём вопрос?
    > И менее многословный, чем Java. Например, Haskell. :-)

    Да, пожалуй, это одна из причин, по которым OCaml я люблю больше, чем Haskell. :)

     
  • 4.115, yyyy (?), 18:11, 08/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Собственно, строгий формализм - это не удел и человека тоже.

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

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

    А что касается эксперимента, то он пока что выглядит игрушечным, я с этим и не спорю.

     

  • 1.4, Аноним (-), 10:19, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    О, эксепшены. В добрый путь.
     
     
  • 2.5, Илья (??), 10:23, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а можно подробнее?
     
     
  • 3.24, VladSh (?), 12:01, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно имелось в виду возвращение результатов функциями как в Go.
     
     
  • 4.31, Crazy Alex (ok), 13:36, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это, наверное, самый большой фейл Go
     
     
  • 5.39, Аноним (-), 15:52, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Почему же, вполне удачная попытка обойтись без костылей C не ценой кидания исключений. Можно сделать получше, но и такой вариант весьма неплох.
     
     
  • 6.52, Диносуслик (?), 19:07, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Почему же, вполне удачная попытка обойтись без костылей C не ценой кидания
    > исключений. Можно сделать получше, но и такой вариант весьма неплох.

    Exception-Driving-Development )

     
  • 6.53, Crazy Alex (ok), 19:23, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то исключения - при вменяемом проектировании, конечно - упрощают код и ускоряют приложение. Проблема, как обычно, в том, что вменяемо проектировать таки надо, а Go - это попытка сделать "нативный язык для обезьянки". В результате имееем несконаемую (и адски утомившую ещё с сей) простыню явных проверок на каждый вызов, которая адски загромождает код и на быстродействие влияет ни разу не лучшим образом.
     
     
  • 7.61, Аноним (-), 20:17, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще-то исключения - при вменяемом проектировании, конечно - упрощают код и ускоряют приложение.

    Вообще-то это вопрос спорный. Александреску на этот счёт хорошо высказался: https://www.youtube.com/watch?v=R5PL1hyspSg
    И, кстати, решение, которое он предлагает, выглядит лучше гошного.

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

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

     
     
  • 8.63, Forth (ok), 21:12, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Смотря в каком языке Если в Форте, то там исключения быстрая штука В питоне ... текст свёрнут, показать
     
     
  • 9.84, Аноним (-), 10:40, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да уж, исключения в питоне не тормозней самого питона Потому что нет ничего тор... текст свёрнут, показать
     
     
  • 10.86, angra (ok), 10:42, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это ты perl6 не видел ... текст свёрнут, показать
     
  • 7.78, angra (ok), 08:57, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Специально для "необезьянки" сообщаю, при помощи panic и recover ты можешь использовать в Go свой любимый стиль обработки ошибок всем скопом через исключения. Но среди "обезьянок" такой стиль считается неприемлемым из-за наличия более подходящего механизма. Поэтому твой код с исключениями и код "обезьянок" с возвращением ошибки будут плохо сочетаться в одном проекте.

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


     
     
  • 8.83, Аноним (-), 10:38, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Не надо тиражировать сказку про обезьянок Кто читал классическую Практику пр... текст свёрнут, показать
     
     
  • 9.85, angra (ok), 10:41, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В данном случае кавычки обозначали сарказм, а не цитирование ... текст свёрнут, показать
     
  • 8.110, freehck (ok), 02:35, 30/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я всё же думаю, что основная мысль заключается в том, что исключения действитель... большой текст свёрнут, показать
     
  • 2.55, Вареник (?), 19:56, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ничто не мешает натравить ту же модель нейросети на Scala, Kotlin, Хруст. Что там у нас еще модненького.
     
     
  • 3.59, Аноним (-), 20:06, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ничто не мешает натравить ту же модель нейросети на Scala, Kotlin, Хруст.
    > Что там у нас еще модненького.

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

     

  • 1.6, Илья (??), 10:24, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    а потом сиди, разбирайся с еле-еле читаемым кодом.
     
  • 1.9, ыы (?), 10:35, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    "
    - а вы и есть за меня будете?
    - а-ага!!!!
    " (с) мультик про двоих из ларца
     
  • 1.11, Аноним (-), 10:53, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ну вот только только в Java перестали копипастить код. И Java оказался лидером по относительному количеству уникального кода на GitHub.

    Сейчас они этой штукой всю статистику испортят)

     
     
  • 2.28, Аноним (-), 12:51, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну вот только только в Java перестали копипастить код. И Java оказался

    А почему это произошло (не в теме)?

     
     
  • 3.45, Диносуслик (?), 19:00, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это говорит об исключительности и офигенности Java-разработчиков, они настолько божественны, что пишут код без копипасты. А нейросети им теперь малину подпортят )
     
  • 3.74, qsdg (ok), 02:47, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Т.к. в жаве куча готовых библиотек, и в отличие от Node.js экосистемы они в среднем лучшего качества, так что их проще импортить в свой проект вместо копипасты.
     
     
  • 4.112, freehck (ok), 10:12, 30/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Т.к. в жаве куча готовых библиотек, и в отличие от Node.js экосистемы
    > они в среднем лучшего качества, так что их проще импортить в
    > свой проект вместо копипасты.

    Ммм, как мило. Видимо, очень хотелось сказать, что для Java библиотеки лучшего качества, но язык не поворачивался. Тогда добавил "в отличие от Node.js" -- и ура, ура, теперь повернулся! Впрочем, кто бы сомневался. Это ж Node.js.

    У Java тем не менее проблема обычная. Библиотек переизбыток, и большинство из них кусок сами знаете чего.

     

  • 1.14, патриот (?), 11:27, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Отлично!Ждем в си да и вообще везде.Зато учить больше ничего не придется.
     
     
  • 2.18, Аноним (-), 11:31, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Ждем в си да и вообще везде.

    И будут присылать Торвальдсу такие вот "патчи" :)

     
     
  • 3.57, Вареник (?), 19:58, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>Ждем в си да и вообще везде.
    > И будут присылать Торвальдсу такие вот "патчи" :)

    Нет, заменят Торвальдса на нейросеть принятия патчей. Которая будет водить моделью пальца Торвальдса.

     
     
  • 4.89, abi (?), 15:16, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    и изгонять бесов в красных колпаках
     
  • 2.46, Диносуслик (?), 19:01, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Отлично!Ждем в си да и вообще везде.Зато учить больше ничего не придется.

    И работать не придется, и кушать тебе тоже не придется.

     
     
  • 3.54, патиот (?), 19:46, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А я и не работаю и кушать люблю но все равно отлично! хорошая новость.
     

  • 1.15, Аноним (-), 11:29, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    И опции выходного кода надо сделать --indusocode, --bydlocode :)
     
     
  • 2.21, Аноним (-), 11:41, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да, чтобы искал на govnokod.ru
     
     
  • 3.40, Аноним (-), 15:53, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Да, чтобы искал на govnokod.ru

    Так ли велика разница с гитхабом?

     

  • 1.17, fdw (?), 11:30, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    А всего-то нужны нормальные библиотеки, не заставляющие писать тонны бойлерплейта, и никакое машинное обучение не понадобится.
     
     
  • 2.23, Аноним (-), 11:52, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ну может сделаешь хотя бы одну? Все будут равняться
     
  • 2.32, Crazy Alex (ok), 13:37, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И нормальные языки с мощными шаблонами вроде того, что в D
     

  • 1.25, VladSh (?), 12:03, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    > для воплощения парадигмы разработки copy&paste

    Наоборот пытаешься уйти от этого шлака, а тут тебе такой "подарок"...

     
     
  • 2.47, Диносуслик (?), 19:02, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> для воплощения парадигмы разработки copy&paste
    > Наоборот пытаешься уйти от этого шлака, а тут тебе такой "подарок"...

    Нагенерят овнокода, зато потом будешь поддерживать! Как это? Вспомнил! "Умение разбираться в чужом коде"

     

  • 1.26, KonstantinB (ok), 12:38, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Искусственный индус.
     
     
  • 2.41, Аноним (-), 17:02, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ganesh3000
     
     
  • 3.66, KonstantinB (ok), 22:01, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А заметили, что двое из четырех авторов публикации - индусы? :)
     

  • 1.29, vantoo (ok), 13:22, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Серьезный софт эта система писать конечно не сможет, но заменить веб-макак сможет вполне.
     
     
  • 2.48, Диносуслик (?), 19:02, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Серьезный софт эта система писать конечно не сможет, но заменить веб-макак сможет
    > вполне.

    Повысит скорость вывода в пром для мартышек!


     

  • 1.30, Аноним (-), 13:29, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    > модель, натренированную на примерах рабочего Java-кода, представленного на GitHub.

    Вау, они создали макаку, таскающую куски чужого кода с Гитхаба!

     
     
  • 2.38, Аноним_ (?), 14:06, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> модель, натренированную на примерах рабочего Java-кода, представленного на GitHub.
    > Вау, они создали макаку, таскающую куски чужого кода с Гитхаба!

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

     
     
  • 3.49, Диносуслик (?), 19:03, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>> модель, натренированную на примерах рабочего Java-кода, представленного на GitHub.
    >> Вау, они создали макаку, таскающую куски чужого кода с Гитхаба!
    > да, недоработочка - незаслуженно забыт stackoverflow, причем надо иметь два искусственных
    > разума - один обученный только на ответах, а другой - копипастящий
    > и из вопросов тоже.

    Если будет копипастить из вопросов, то я в такой скафандр не залезу, если узнаю, что ПО на нем так было разработано )

    А про кардиостимуляторы вообще молчу...

     
     
  • 4.67, Аноним_ (?), 22:28, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ха, как будто если сейчас то же самое делает живой индус, он работодателю в этом признается!
     

  • 1.33, Аноним (-), 13:41, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > позволяющий частично автоматизировать процесс написания кода на языке Java

    А есть такой же, но позволяющий автоматизировать процесс ЧТЕНИЯ кода на языке Java?

    Писать-то быстро все и так могут. Проблема с тем, чтобы ЭТО потом читать и понимать быстро.

     
     
  • 2.36, Аноним_ (?), 14:05, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    а зачем? Если оно произведено подобным образом, то уже не важно, живая там макака или синтетическая- удаляешь и пишешь с чистого листа заново, оно проще и надежней.

     
     
  • 3.44, wins proxy (?), 18:57, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А как ты узнаешь что писать?
     
     
  • 4.68, Аноним_ (?), 22:30, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А как ты узнаешь что писать?

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

    Ты бы еще плакал, что код, произведенный cfront, невозможно было ни прочитать, ни поправить.

     
  • 4.81, Диносуслик (?), 09:46, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А вот за что мой ответ потерли. За то, что я порекомендовал в ВУЗ пойти учиться профильный? А-ха-ха-ха. Шигорин, ты ли это трешь комменты? )
     
  • 2.51, Диносуслик (?), 19:06, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > В этом суть джаваскрипта. Как только люди не извращаются — создают кучу
    > диалектов, языков, фреймворков, которые в итоге все равно компилируются в джаваскрипт.
    > При этом без знания джаваскрипта все равно не обойтись. Как в
    > анекдоте про завод, который мог производить только автоматы Калашникова.

    Джава, Джаваскрипт. Автор, пиши исчо! Тебе что 1С, что бейсик, что C++... Facepalm )

     
     
  • 3.60, жабабыдлокодер (ok), 20:17, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Подумаешь! Я вот как-то просматривал вакансии, вижу - "системный программист". Думаю, хренасе, кому у нас в городе такой понадобился? Что за ребята серьезными разработками занимаются? Лезу, читаю: "требуется программист для работы в системе 1С"...
     
  • 2.62, Andrew (??), 20:34, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Как всегда большинство комментариев от тех, кто на Джаве максимум года два назад закодил окно на AWT, или Swing, и считает, что может теперь рассуждать о достоинствах и недостатках.

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

     
     
  • 3.69, Аноним_ (?), 22:32, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > ничего, что в крупных фирмах бОльшая часть корпоративных приложений, вебсервисов, и
    > многого другого делается именно в Джаве, и прекрасно себе справляются с
    > поставленными задачами, как на мобильных телефонах, так и на высоконагруженных системах
    > типа банков, страховок, бронирования турпоездок, и т.д.

    ничего что в крупных фирмах (даже некоторых банках, не говоря про всякий треш типа турпоездок) многое делается на php - "и ничего, справляется"? Падает, кстати, пореже жаба-приложений.

     
     
  • 4.72, Andrew (??), 23:02, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    о чем вы? если о фронтенде, то PHP используется широко, никто не спорит. но разработка бэкенда на PHP станет для авторов незабываемым эротическим приключением на долгие годы. Java идеальна для бизнес логики и предоставляет массу стандартизированных фреймворков на любой случай, а случаи, как известно разные бывают. в плане инструментов разработки, отладки, тестирования, непрерывной интеграции и серверов приложений все остальные ЯП уныло курят в стороне.

    >Падает, кстати, пореже жаба-приложений.
    >не говоря про всякий треш типа турпоездок

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

     
     
  • 5.80, angra (ok), 09:06, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > лично знаю несколько крупных контор, которые предоставляют высокопроизводительные сервисы  на джаве и ничего у них не падает.

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

     
     
  • 6.82, Andrew (??), 10:35, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Семидесятилетний пациент пришел к сексопатологу с жалобой на половую слабость.

    у кого что болит

    Топ сайтов с серверной частью на Java EE
    https://sohabr.net/habr/post/220757/

     
     
  • 7.100, angra (ok), 20:08, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > у кого что болит

    То есть смысл анекдота ты не понял.

    > Топ сайтов с серверной частью на Java EE

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

     
     
  • 8.102, Andrew (??), 20:30, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    если вы заметили название Amazon в списке, то сообщаю вам для общего кругозора, ... текст свёрнут, показать
     
     
  • 9.104, ыы (?), 22:47, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А анекдот то- на 146 в тему Архитектура Амазон https www insight-it ru h... большой текст свёрнут, показать
     
     
  • 10.105, ыы (?), 22:49, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И да, если вы не доверяете переводчику- там есть ссылки на источники ... текст свёрнут, показать
     
     
  • 11.106, ыы (?), 22:56, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Самое смешное, что Топ сайтов с серверной частью на Java EE https sohabr ne... текст свёрнут, показать
     
  • 9.107, Аноним (-), 09:44, 29/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А я Вам сообщаю, что эти высококлассные спецы сделали абсолютно неюзабельное оно... большой текст свёрнут, показать
     
  • 3.97, Аноним (-), 19:25, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    на яве писал только под андроид, там по производительности сравнить было не с че... большой текст свёрнут, показать
     
     
  • 4.101, Andrew (??), 20:16, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >на 2 строки кода приходится 15 строк вспомогательной информации типа явадоков, фигурных скобок, заголовков функций

    я учился программировать на Си, и не вижу в синтаксе Джаве ничего сверхъестественного


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

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


    >слышал отзывы людей, работающих (отдел тестирования) с софтом, пишущимся "в крупных фирмах": в момент релиза оно работает без очевидных ошибок лишь если повезёт

    это классический пример эффекта танцора

     
     
  • 5.113, Аноним (-), 00:56, 01/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > не вижу в синтаксе Джаве ничего сверхъестественного

    А проблема не в синтаксисе.

    Можно ведь написать

    int min (int a, int b) { return a < b ? a : b; }

    а можно


    /*
    * Compare two values and returns the minimal one.
    *
    * @param int firstValue The first value to compare.
    * @param int secondValue The second value to compare.
    *
    * @return int The minimal of the two values passed.
    */
    int
    min (
        int firstValue,
        int secondValue)
    {
        int result = 0;

        if (firstValue < secondValue)
        {
            result = firstValue;
        }
        else
        {
            result = secondValue;
        }

        return result;
    }

     

  • 1.42, Простите (?), 17:33, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Надо просто выделить readLine в отдельную библиотеку, как npm leftpad.
     
  • 1.43, Аноним (-), 17:39, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А-а-а, так вот как появится скайнет!
     
  • 1.56, Аноним (-), 19:57, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Индийские джависты напряглись - могут у них отобрать индустрию г*вн*кодерства
     
  • 1.64, _ (??), 21:36, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Перефразируя нетленное:
    программисты сами сделают нам верёвку, на которой мы их и повесим!


    :-D

    _

     
  • 1.65, Димон (??), 21:43, 27/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    гомнокод теперь будут генерировать нейросети. Что-то не вижу в комментариях замечания, что тут даже try/catch поставлен неправильно.
     
     
  • 2.70, Аноним_ (?), 22:34, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > гомнокод теперь будут генерировать нейросети. Что-то не вижу в комментариях замечания,
    > что тут даже try/catch поставлен неправильно.

    потому что правильно он поставлен.


     
     
  • 3.71, Аноним (-), 23:01, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Что в нем правильного? Файл не закрывается. Он должен быть блоке try с ресурсами
     
     
  • 4.98, Аноним (-), 19:30, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Файл не закрывается.

    Для тех, кто привык пользоваться языком, где "не нужно за памятью следить", это вообще не аргумент. Скажет админам, чтоб файловых дескрипторов в ulimit побольше поставили (любую систему надо настраивать). Или автоперезапускалку настроит, чтоб ресурсы операционка освобождала (работать должен человек, а не компьютер).

     
     
  • 5.99, Аноним (-), 19:32, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > (работать должен человек, а не компьютер).

    зараза, опечатался :( хотел наоборот написать.


     
  • 3.87, Димон (??), 10:48, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ресурсом, который нужно освобождать, владеет FileReader. Поэтому try должен быть после него. А ты больше не вноси вклад в развитие этого программного продукта, двоечник.
     
     
  • 4.114, Аноним (-), 01:05, 01/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ресурсом, который нужно освобождать, владеет FileReader. Поэтому try должен быть после него.

    А можно поподробнее? Как вынос FileReader наружу от try/catch исправит ситуацию?

     
  • 2.103, Аноним (-), 20:33, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Что-то не вижу в комментариях замечания, что тут даже try/catch поставлен неправильно.

    Жабокодеры слишком увлеклись доказательством, что это лучший из языков.

     

  • 1.73, Аноним (73), 01:56, 28/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я конечно подозревал, что С# и джавистов можно заменить нейросетью, но я придумал способ эффективнее и экономнее - не использовать ни тех, ни других, ни третьих.
     
  • 1.76, Аноним (-), 07:12, 28/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    перешел на демо страничку, выполнил действия, оно висит уже третью минуту.
    чот не то с этим ии, сломался, несите другой.
     
  • 1.77, svboobnov (ok), 07:53, 28/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/

    >... ассистент разработчика Bayou (https://github.com/capergroup/bayou),
    > позволяющий частично автоматизировать процесс написания кода на языке Java. ...

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

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

     
     
  • 2.94, Vkni (ok), 17:39, 28/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > И вообще, тестирование - очень занудное дело.

    Поэтому те, кому нужен надёжный софт, используют языки со строгой статической типизацией вплоть до Agda/Idris. Там тестирования требуется значительно меньше.

     

  • 1.88, Очередной аноним (?), 13:15, 28/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Забавно. Это значит начал ты проект как костылик, который надо было по-быстрому и уже вчера, получил первый результат этого наколенного "прототипа" и начальство сказало "давай закидывай ЭТО в продакшн и пили в темпе вальса дальше". Накидал еще больше костылей ибо время для анализа и построения архитектуры тебе никто не давал. Нужно больше и быстрее - и ты натравил на него этот ИИ. "Научил его плохому" (c). Ну и все, гогнокод начнет генерироваться в утроенном темпе, а понятия "рефакторинг" и "архитектура приложения" будут вообще занесены в словарь табуированных матерных слов, а поддержка такого поделия закончится скорым самоубийством его создателя.
     
  • 1.91, anomymous (?), 15:56, 28/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Я так и знал, что жабакодеров можно заменить нейросетью.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру