LINUX.ORG.RU

Джеймс Гослинг об Apple, Apache, Google, Oracle и о будущем Java

 , , , ,


0

2

Опубликована видеозапись недавнего выступления Джеймса Гослинга, автора языка Java, на встрече, организованной пользовательскими группами Web Java и JavaFX Кремниевой долины.

Среди прочего, Гослинг затрагивает следующие темы:

  • его уход из Oracle,
  • развитие Java под управлением Oracle,
  • использование Java в Android,
  • прекращение поддержки Java компанией Apple,
  • отношения между IBM и Oracle,
  • беспокойство Apache Software Foundation,
  • его занятия в последнее время,
  • другие языки программирования и технологии,
  • будущее Java.

>>> Видео (flash)

★★

Проверено: maxcom ()

Запись длится 1 час 20 минут, но скучно не было. В целом, сложилось впечатление, что относительно будущего Java Гослинг настроен оптимистично.

Fice ★★ ()

Транскрипт выложите. Много времени на этого обиженного тратить не хочется.

anonymous ()

Есть стенограмма? Смотреть некогда.

madcore ★★★★★ ()

А еще было бы хорошо прочитать краткие тезисы прям по выданным в списке пунктам. Некоторые Ъ, некоторые могут найти более плодотворное занятие на 1:20 и к тому же, вряд ли все хорошо на слух енглиш воспринимают, вдруг упустят нюансы?)))

anonymous ()

> другие языки программирования и технологии,

а про это что? троллинг и баяны или есть интересные мысли?

anonymous ()

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

tazhate ★★★★★ ()

He is like a program.. media player launched on some i486 :) and..and.and..and.. but it sounds better then a speach of those professors who like to do: «hmmmm... ehmmmm..».
Good programmer must be like a machine :)

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

Тезисы

Кратко, что запомнилось. Пересматривать некогда, вольный пересказ (могу наврать, поправляйте, если кто еще посмотрел).
В общем, никакой истерии, как в блоге после увольнения из Oracle тут не было. Отдохнул, видимо, успокоился.

В Oracle работать плохо: там вертикаль, все решения принимает только Ларри.

Oracle не навредит Java, иначе им самим крышка.

Вероятно, Oracle будет продавать усовершенствованную версию Java с расширенными возможностями мониторинга, которые нужны в энтерпрайз. Они уже делали это и раньше (JRockit). Теперь, вероятно, они объединят HotSpot и JRockit. Сборка мусора и производительность в целом лучше в HotSpot. Преимущество JRockit — мониторинг. Свободная версия Java не пострадает.

То, что Oracle удалось подружиться с IBM и Apple — очень хорошо.

Sun и Google следовало бы договориться. Sun не собирались судиться с Google, а только исследовали вопрос о том, какая их интеллектуальная собственность задействована (от себя: вполне верю, знать это нужно как минимум для того, чтобы быть готовыми к обороне, и для продажи. Когда Oracle узнали, что Google нарушает патенты Sun, а они не судятся, реакция была примерно: «Да вы же е..ые идиоты!».

Google повторяет ошибки, которые Sun допустили, когда выпустили Java ME: позволяет производителям делать несовместимые варианты платформы. С другой стороны, 10 лет назад производителям мобильных устройств приходилось идти на различные компромиссы для достижения приемлимой производительности, что стало одной из причин плохой совместимости между версиями Java ME в разных устройствах.

Кажется, были еще и какие-то положительные комментарии по поводу Android.

Гослингу много приходилось использовать C, C++ и Objective C. При этом, он эти языки страстно ненавидит. После Java ему нравится Scala, но он говорит о том, что многие используют Scala в качестве Java с более компактным синтаксисом, не понимая и не используя возможности функционального программирования. В прошлом Гослинг много писал на Lisp.

Гослинг ненавидит JSP и JSF и считает саму идею вставки кода в разметку дурацкой, но раскрученной благодаря Microsoft с их ASP.

До того, как Java приобрела популярность, Гослинг сам свободно решал, что включать в язык, а что нет (проснулся утром и понял, что goto не нужен). Потом возникло определенное давление. Генерики — трудное решение, но все-таки верное, они усложняют язык с одной стороны, но упрощают с другой.

Когда Apple активно поддерживали Java, они были заинтересованы в привличении разработчиков. Теперь они в них практически утопают. Apple не заинтересованы в легкой переносимости приложений между своими и чужими ОС, они пытаются максимально привязать к себе разработчиков и пользователей.

Поддерживать Java на ОС компании Apple без помощи Apple проблематично: необходим доступ к секретным API (от себя: я так понял, что Oracle это уже как-то уладил).

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

.NET (CLR) — плохо проработанный клон Java. Поддержка небезопасных манипуляций с памятью делает его еще и бессмысленным. Говорит, что ожидал от Microsoft более серьезного подхода.

Apache обиделись на Sun за то, что те открыли Java под GPL, а не под лицензией Apache. И еще TCK этот — отдельная история (махнул рукой).

(от себя: в своей статье двухлетней давности Брюс Перенс объясняет, что Microsoft спонсирует Apache за то, что те не используют GPL и прочий «копилефт»; проекты под «пермиссив» лицензиями не представляют для корпораций угрозы и не могут с ними конкурировать: http://itmanagement.earthweb.com/osrc/article.php/12068_3762786_1/Bruce-Peren...)

Fice ★★ ()
Ответ на: Тезисы от Fice

Еще он говорил о том, что Web — это только маленький уголок в компьютерных технологиях. Программируют и в физике, и в биологии, но об этом не говорят так много.

Fice ★★ ()

Second favorite language - scala.

r ★★★★★ ()
Ответ на: Тезисы от Fice

Re: Тезисы

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

Oracle не навредит Java, иначе им самим крышка.

Вот это особенно повеселило.

anonymous ()
Ответ на: Тезисы от Fice

Re: Тезисы

Спасибо.

anonymous ()
Ответ на: Тезисы от Fice

Отлично, спасибо, нет времени смотреть полтора часа, но краткий пересказ было интересно почитать ^_^

I-Love-Microsoft ★★★★★ ()
Ответ на: Тезисы от Fice

Спасибо

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

The_best_ZoRRo ()
Ответ на: Тезисы от Fice

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

Quasar ★★★★★ ()
Ответ на: Тезисы от Fice

Спасибо, было познавательно.

olleg ()
Ответ на: Тезисы от Fice

Спасибо за обзор и что не забили на просьбы трудящихся.)))

shelA ()
Ответ на: Тезисы от Fice

Re: Тезисы

>.NET (CLR) — плохо проработанный клон Java. Поддержка небезопасных манипуляций с памятью делает его еще и бессмысленным. Говорит, что ожидал от Microsoft более серьезного подхода.

Во дедуля выдал перл! А про то, что он ниасилил TCO тактично забыл упомянуть.

anonymous ()

>Запись длится 1 час 20 минут, но скучно не было

Выложи пожалуйста видео по прямой ссылке

Есть стенограмма? Смотреть некогда.


кто-нибудь может в 2-3 предложения рассказать основную мысль



Я могу продолжить.

НЕ ЗНАЮ, ЧТО ТАМ ГОСЛИНГ ГОВОРИТ, НО JAVA НЕ НУЖНА!!!111

proud_anon ★★★★★ ()
Ответ на: Тезисы от Fice

Тезисы

.NET (CLR) — плохо проработанный клон Java. Поддержка небезопасных манипуляций с памятью делает его еще и бессмысленным. Говорит, что ожидал от Microsoft более серьезного подхода.

а зря! зря ожидал...
mysql закопали и до Java-ы доберутся, вот лажа, ms не упустит возможности сунуть свои шаловливые ручонки, как только появится такая возможность
будет сплош и рядом ms да .net либо много-много форков jre и jdk

Ответ на: Тезисы от Fice

Благодарю (:

.NET (CLR) — плохо проработанный клон Java. Поддержка небезопасных манипуляций с памятью делает его еще и бессмысленным. Говорит, что ожидал от Microsoft более серьезного подхода.


Годно вбросил.

pevzi ★★★★★ ()
Ответ на: Тезисы от Fice

Спасибо за пересказ, а то с моим интернетом посмотреть было бы просто нереально.

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

>> .NET (CLR) — плохо проработанный клон Java. Поддержка небезопасных манипуляций с памятью делает его еще и бессмысленным. Говорит, что ожидал от Microsoft более серьезного подхода.

Годно вбросил.

+люсую... Учитывая, что аргументировать забыл...

anonymous ()
Ответ на: Тезисы от Fice

Re: Тезисы

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

Гослинг ненавидит JSP и JSF и считает саму идею вставки кода в разметку дурацкой, но раскрученной благодаря Microsoft с их ASP.

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

oami ★★ ()
Ответ на: Re: Тезисы от oami

смотря что нужно ессно, но альтернатива gwt (smartgwt, ext-gwt ...)

chani ()

Ему не нравиться Oracle, он аккуратно называет их «идиотами», хотя верит, что они просто не поняли, что купили и скоро все образуется. Винит привычную им философию, что во всем надо видеть «sales opportunity». Даже Java One, который всегда направлялся на обучение и обсуждение интересных вещей, в глазах Oracle это возможность продвигать продукты. Также на его взгляд в Oracle очень строгая иерархия, где все решения делаются двумя людьми. У них просто гигантские очереди вопросов, которые надо решить, потому какие то фундаментальные вопросы по Java могут опаздывать или просто решаться автоматом «ну как обычно».

Ему не нравиться Java ME и если бы была возможность повернуть время вспять, он сделал бы все иначе (как, не указал). Реализацией VM для мобилок занимались сторонние компании, Sun просто тестировала их на совместимость и Джеймс пожаловался как это было не реально сложно. Но из Java для мобилок было взято очень много опыта, который гугл не перенял, а решил пройтись по граблям сам (scalable phones etc).

По поводу JSP, он это ненавидит с особым чувством, но оно было сделано так, что бы быть похожим на поделия от Microsoft (<% код между тегами - это круто %>), просто было не реально сделать по другому, все писали кипятком на эту идею. Он раза 4-5 писал замену JSP, но все это осталось пылиться на полках истории.

По поводу софта вообще, правильно заметил, что у большинства «аналитиков» и программистов вообще любые идеи и вообще понятия «писать софт» тесно связаны с вебом. Он считает, что это не более чем 10% от всего, связанного с софтом. Что в той же биологии, физике и т.д. гораздо больше интересных задач.

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

Сказал о не целесообразности строить процессоры для Java байткода, ибо проще, гибче и лучше делать трансляторы в нативный код.

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

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

О generics сказал, что они в принципе съедобны, конечно не гениальны, но если использовать правильно, то все будет хорошо. Сказал, что в языке с самого начала было много фич (к примеру перегрузка операторов), которые реализовали, но потом вырезали как ересь («печатать в stdout посредством <<, народ это странно»). По поводу closures, хотел их видеть ранее, не надеется увидеть в JDK7, но думает появятся в JDK8. Основная проблема - огромное количество разработчиков. На любое, даже самое маленькое изменение найдется миллион-другой не согласных. Помечтал о былых временах, когда их было мало и можно было просто встать с утра и реализовать фичу.

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

>Он считает, что это не более чем 10% от всего, связанного с софтом. Что в той же биологии, физике и т.д. гораздо больше интересных задач.

Не суть сколько пишут по объёму кода. Суть какое влияние результат оказывает на человечество. Я думаю со мной тут все согласятся, что именно сетевые технологии произвели наибольшие изменения в жизни людей за последние лет 10-15.

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

Да, перегрузки операторов нет - это плохо... Как раз это в .Net «плохо проработанном клоне java» есть, как и явное указание override - что явно полезней для скорости (таблица виртуальных функций меньше). И в отличии от C++ и C#, в Жабке generic-и не-настоящие, а костыли, с кучей «растяжек» на которые легко нарваться. Нет аналога делегатов, нет properties - до хери чего нет..

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

В том то и дело, что Microsoft включает в CLR и C# любую фичу, которая сегодня кажется модной, в угоду быдлокодерам — такая у них стратегия.

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

Перегрузка операторов только запутывает код.

Явное указание override нужно скорее для того, чтобы избежать ошибки, когда программист думает, что перегрузил метод, а этого не произошло из-за несоответствия сигнатуры. В Java для этого есть аннотация @Override.

Генерики в Java хороши тем, что они не вносят лишних сущностей в спецификацию виртуальной машины. Пример «нарывания на растяжку»?

Делегаты? Есть анонимные классы. Потом добавят замыкания. А делегаты — ни рыба, ни мясо.

Свойства? JavaBeans решает проблему без лишних сущностей.

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

Да и никто не мешает использовать другие языки для JVM, например, Scala. Преимущества JVM (простота и производительность) при этом остаются.

Fice ★★ ()

Ну приятно послушать умного человека. Приятно. Чего уж.

kristall ★★ ()

Ну если Java такой торт, почему ее толком ни кто не использует?

Думаю Google клонируя Java делает большую работу: закапывает ее труп.

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

>Перегрузка операторов только запутывает код.

Если использовать бездумно - да.. Получается, для того, чтобы не отстрелить себе яйца, на всякий случай НЕ стали добавлять ВСЕ-ТАКИ хорошую фичу

Генерики в Java хороши тем, что они не вносят лишних сущностей в спецификацию виртуальной машины.

А чем это хорошо...??!! Что производные типы приводятся к Object, потеря информации.. Необходимость преобразования типов в ООП - явный признак дурной архитектуры.. Не хочется вступать в полемику, тем более, что на эту тему много инфы доступны в и-нете... У того же Брюса Эккеля, по-моему, что-то на эту тему выговаривается. И ТОЛЬКО ОДИН плюсЪ - обратная совместимость.. В этом смысле чем дальше, тем меньше будет у java возможности для прогресса в угоду совместимости...

Пример «нарывания на растяжку»?

Там же и примеры... Необходимости внимательно следить при работе с generic'ами - это хороший показатель: среда не защищает программиста от ошибок..

Делегаты? Есть анонимные классы. Потом добавят замыкания. А делегаты — ни рыба, ни мясо.

Можно согласиться...

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

Перегрузка операторов только запутывает код.

Перегрузка операторов нужна для довольно ограниченного числа случаев. И там она реально код упрощает. Например при описании всякой математики на BigInteger/BigDecimal или при сравнении обьектов.

Явное указание override нужно скорее для того, чтобы избежать ошибки, когда программист думает, что перегрузил метод, а этого не произошло из-за несоответствия сигнатуры. В Java для этого есть аннотация @Override.

Нужен не override а virtual, для сокращения размера таблицы виртуальных функций.

Генерики в Java хороши тем, что они не вносят лишних сущностей в спецификацию виртуальной машины. Пример «нарывания на растяжку»?

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

Делегаты? Есть анонимные классы. Потом добавят замыкания. А делегаты — ни рыба, ни мясо.

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

public String getServiceClient(final Service service) {
        SqlDao dao = (SqlDao) getBean("sqlDao");
        return (String) dao.getTemplate().query(SQL_GET_CLIENT, new Long[]{service.getClient().getId()}, new ResultSetExtractor() {
            public Object extractData(ResultSet rs) throws SQLException, DataAccessException {
                String result;
                SqlDao dao = (SqlDao) getBean("sqlDao");
                rs.next();
                if (rs.getInt("IS_ORG") == 1) {
                    result = (String) dao.getTemplate().query(SQL_GET_LEGAL_INFO, new Long[]{service.getClient().getId()}, new ResultSetExtractor() {
                        public Object extractData(ResultSet rsi) throws SQLException, DataAccessException {
                            if (rsi.next()) {
			        return rsi.getString("C_INN") + ", " + rsi.getString("C_NAME");
                            } else {
                                log.debug("====== No legal client found for service: " + service.getRegistrationNumber() + " (" + service.getId() + ")");
                                return null;
                            }
                        }
                    });
                 } else {
                     result = (String) dao.getTemplate().query(SQL_GET_PERSONINFO, new Long[]{service.getClient().getId()}, new ResultSetExtractor() {
                         public Object extractData(ResultSet rsi) throws SQLException, DataAccessException {
                             if (rsi.next()) {
                                 return rsi.getString("LASTNAME") + " " + rsi.getString("FIRSTNAME") + " " + rsi.getString("MIDDLENAME");
                             } else {
                                 log.debug("====== No phisical client found for service: " + service.getRegistrationNumber() + " (" + service.getId() + ")");
                                 return null;
                             }
                        }
                    });
                }
                return result;
            }
      });
}
Nagwal ★★★★ ()

Для самый über-Ъ напишите одно слово: джавокапец или не?

OramahMaalhur ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.