Как стать автором
Обновить

Комментарии 65

А видио потом выложите? Просто пилить в Питер ради конференции — я пас
В посте же написано про видео. Ответ на ваш вопрос там точно есть!
Добрый день. Есть ли новости про видео? в частности «JDK8: Stream style»?
Жаль, что в Москве JUG не так активен… Очень бы хотелось посетить конференцию, но не уверен, что получится выбраться в Питер, да еще и на два-три рабочих дня…
Ой, чую неладное ща будет, ну да ладно…

Меня просто поражает тот вал конференций, который устраивается по Java…

Вначале нам говорили, что проблемы этого поганого и страшного C++ с кучей утечек памяти решаются просто переходом на Java, и опа доклад из разряда «Спорим, в твоем приложении есть утечка памяти?», где товарищ из Plumbr будет показывать как память тает на глазах при редиплоях из-за кривых библиотек, забытых close после открытия соединения и невыполнения какой-то магии в десяток строк, которую просто не выполняют, потому что документация слишком большая и разработчики до этого места просто не дочитали.

Ещё говорят про замечательный Garbage Collector, который всё делает за нас, и память контролирует и чистит всё, который «вааще решает все проблемы», но на каждой, или практически на каждой конференции рассказывают опять про то как этим «простым» GС нужно правильно пользоваться и как его нужно понимать…

Потом нам говорят про простоту языка Java (опять же в C++ всё просто безумно сложно), но опять же ни одна конференция уже не обходится без доклада о том, как использовать что-то иное на JVM или писать свою DSL, чтобы всё было наконец-то красиво…

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

И вот я смотрю на всё это, и понимаю, что эффект Java родил такой прикольный и походу дела довольно прибыльный бизнес по поставке неиссекаемого источника знаний…

Нет, не поймите меня неправильно, и тут бы я с удовольствием и Кекса бы послушал, и Елизарова, и Бреслава даже просто потому что они реально крутые докладчики и говорят как правило по делу, однако… никак не пропадает ощущение того, что где-то мы свернули не туда…
НЛО прилетело и опубликовало эту надпись здесь
Я им про Фому, а они про Ерёму… По-сути опять попали в небо пальцемЯ уже давно понял, что серебряной пули нет (можешь мои старые комментарии почитать, если не веришь)… Я вообще написал про бизнес по поставке знаний (или в кавычки это взять?)… Просто кроме того, что «серебряной пули нет» я ещё вижу и бессмысленность такого огромного количества конференций по сути об одном и том же.
Например про другую конфу «Цена участия в конференции зависит от даты оплаты — она будет меняться от 13 000 до 21 000 рублей.» — вот это вот бизнес. Причем не «бизнес по поставке знаний», а просто бизнес.

А Joker, JPoint да и JavaOneMoscow — это благотворительность.
Ну я не конкретно про эту конференцию… Просто это уже третье упоминание про очередную Java-конференцию за сегодня. Я вообще про движуху. Есть же ещё куча всяких «тренингов» и курсов по переделке вчерашних бухгалтеров в java-программеров. Вот тут реальные деньги поднимаются.
дык это я движуху навожу. Ты наверняка видишь упоминания одной и той же конфы. Так и задумано))

Про бухгалтеров в Java-программеров, да это беда. Дефицит кадров называется. Проблема в том, что при таком дефиците любой вменяемый специалист к 30-35 годам становится менеджером, и мы теряем вменяемого инженера. Остаются таксебешные или те, кому насрать. И я даже не знаю, какой случай хуже.
Окей, допустим я хочу сделать бизнес из Java-конференций. Ну и чего? Конференций много, они все в разных городах и странах. Возьмём питерцев.

Человек 10 не-докладчиков из Питера я видел на JavaOne в Москве. В Киеве и Риге мы из питерцев не видели никого кроме докладчиков. На апрельском JPoint было человек 10 из Москвы, 2 человека из Казани, 1 из Самары, 1 из Минска.

Вывод: люди не ездят из города в город.
НЛО прилетело и опубликовало эту надпись здесь
1. «Вал конференций по Java». Мне кажется, в каждом крупном городе, где есть девелопмент, должна быть 1-2 Java-конференции в году. Чтобы люди общались, перенимали опыт друг друга и докладчиков и вообще смотрели по сторонам.

2. GC, утечки памяти, Performance — это специфика того, что все организаторы конференций любят Oracle, а точнее, конкретных докладчиков из Oracle (двое самых видных, Walrus и TheShade, уже отметились тут в каментах). Тот факт, что они рассказывают про системные вещи — так сложилось. Хотя вот они весь последний год ещё про лямбды мутили. Тот же JUG постоянно ругают, что у нас много «системных» докладов и мало прикладных. Тут тоже всё просто: фреймворки меняются, а база остаётся!

3. Конференция — она на то и конференция, что много разных докладов. У нас на Joker будут доклады как про GC и утечки памяти, так и про Spring, JavaEE, IntelliJ IDEA, скриптовые языки, написание тестов, оптимизации производительности, BigData, Lucene/Solr, Cassandra и т.п.
Мне кажется, в каждом крупном городе, где есть девелопмент, должна быть 1-2 Java-конференции в году
Именно Java?.. Ну-ну… Чтобы носа в иные области не показывать и дальше считать, что мы програмим на самом лучшем?.. Или чтобы обсуждать про то как совладать с тем обилием говнокода на Java? Просто извините, но я сам сейчас програмлю на Java и с бэкграундом в нескольких других языках программирования — и я вижу проблемы Java и технологий, и судя по темам, которые поднимаются на конференциях — я не один такой умный. В то время как чистые джаависты и им сочувсвующие, с которыми я общаюсь, до сих пор витают в своих мифах (как-то как же сложно управлять памятью в C++) и нос куда-нибудь дальше какого-нибудь JavaScript не кажут, в то время как на самом деле Java — это порой не меньшее говно чем многие другие языки и технологии, а порой и большее.

Я не пытаюсь вас учить, как нужно конференции делать. Я совершенно про другое… Чувствую из моего первого комментария не понятно и нужно развить мысль?..
Я считаю, что конференции для программистов должны проходить в Питере минимум раз в месяц. Кому-то интересна жаба, кому-то плюсы, кому-то дотнет, кому-то питон, кому-то руби, кому-то андроид, кому-то российский футбол и так далее. Проблема простая: этим никто не занимается. Точнее, один ITMozg пытается. Только у них постоянно говно какое-то выходит плохо полчается. Серьёзные люди, заглянувшие туда, неделю потом плюются.

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

А я вот тоже так считаю! Но понятие программисты не ограничивается одним Java, а ваш изначальный комментарий был именно про конференцию по Java.
ну да, 1-2 в году по Java это норма, имхо. Например, для Питера мы задумали так: одна хардкорная, про кровавые внутренности Java (JPoint), а другая общая (Joker).
НЛО прилетело и опубликовало эту надпись здесь
Мне приходится работать и соответсвенно общаться с разными людьми. И поверьте, меня не окружают сплошь идиоты. Я наверное немного переборщил с эмоциональностью моего предыдущего комментария… Сори… Но например даже рассказ про такую элементарную штуку как счётчик ссылок, который, например, можно было бы использовать для автоматического закрытия соединения с базой, но которая по естественным причинам невозможна в java, у людей округляет глаза — для многих свет клином сошёлся на GC (а счётчик ссылок — это то решение, которое используется в Objectove-C, С++ и вроде как Питоне для автоматического возвращения памяти в кучу), а проблему забывания закрытия соединения в лучшем случае решается использованием try-finally конструкций с ручным проставлением close (которые тоже ещё нужно не забыть написать) в каждом месте где происходит открытие соединения.

И на java они вполне себе вменяемо работают. Проблема-то в другом: однажды проглотив эту пилюлю java они теперь ни во что другое смотреть не хотят. А технологии, нереализуемые на java для них просто не существуют. Ну в лучшем случае глянут на какую-нибудь Scala — но она настолько мозг вынесет, что они скорее всего опять убегут в своё комфортный мир Java, найдя 100500 оправданий почему овчинка выделки не стоит. Отсюда и мифы.
НЛО прилетело и опубликовало эту надпись здесь
А хотите доклад «Невыносимая легкость RefCounting или различные подводные грабли данного подхода»? Надеюсь в минут 40 уложусь. ;)
Я хочу, но я дурак не главный по этой части! real_ales, что скажешь?
Короче тащите печеньки на Unconference — там расскажу.
кстате да!
блин :( Ну хоть обзор того, что собираешься рассказать, чтобы подогреть интерес… Просто чего тащиться если там только про loop-ссылки и связанное с этим только будет, о чём и так все знают?
Тащиться, в принципе, не нужно!!! Ни по одной причине! Все и так все знают!
Ну ладно преувеличил немного… Ну не все всё знают… Тезисы-то или обзор хотя бы проблем можно всё-таки узнать? Интересно же, чёрт побери!
Кстати не «технологии, нереализуемые на java для них просто не существуют», а технологий, нереализуемых на java просто не существует. ;)

Гуглим тезис Чёрча. ;)
Какое отношение невозможности предсказания того, что алгоритм завершится за конечное число шагов, а не будет бесконечным, имеет к тому, что счётчик ссылок на java если и реализуем, то выглядить скорее всего будет хуже чем то убожество, что получается, когда пытаешься реализовать хоть что-то похожее на механизм передачи методов в другие методы?
Гугл бан детектед.
Тезис Чёрча, говорит там о том, что все сколько-нибудь нормальные языки Тьюринг-полны — а следовательно эквивалентны. Вот например шикарнейший свежачок.

RefCount ради RefCount? А как, кстати, вы его будете на C++ реализовывать? ;)

А вот с этого места " убожество, что получается, когда пытаешься реализовать хоть что-то похожее на механизм передачи методов в другие методы" поподробнее.
ну да, теоретик из меня конечно полное говно… Самоучка — что с меня взять… Но всегда приятно узнавать что-то новое.

А теперь по поводу того, как реализуется счётчики и почему это невозможно нормально сделать в java: например за основу можно взять общеизвестный shared_prt. Аналогично реализуется счётчик для открытой базы: в классе cчётчика реализуем указатель на переменную, в которую как раз и пишется количество копий. Ну что-то типа такого (это псевдокод, который даже скорее всего не компилится, а db — это база данных за которую мы не хотим забыть закрыть, когда нам соединение с ней уже не нужно, т.е. последняя копия уничтожается и счётчик уходит в 0):

struct A {
A() {
a = new int(1);
db.open();
}

~A() {
if( 0 == (--(*a)) ) {
delete a;
db.close();
}
}

A& operator=(const A& src) {
this.~A();
a = src.a;
(*a)++;
}

A(const A& src) {
a = src.a;
(*a)++;
}
private:
int* a;
}

На Java это невозможно хотя бы потому что все объекты создаются в heap, а деструктор отсутвует как сущность.

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

interface Comparer {
int compare();
}



public void foo(Comparer comparer) {...}



foo( new Comparer() { public int compare() {… } } ) // что это за хрень такая длинная даже без реализации???

Как это делается в современном C++

void foo(int (*)())

foo([] {...}) // и всё, если я не ошибся с синтаксисом лямбд в C++ (блин, нужно срочно пописать на C++, а то я совсем оджавился)

Да-да, я знаю, что в восьмой появятся вроде как лямбды… Но сейчас-то их нет :) А в C++ есть…
ну что, делаем сплит ветки. Начнем с RefCount.

вопрос 1. что будем делать при многопоточной работе?

вопрос 2. как будем дружить со сторонней либой, поставляемой в бинарниках?

Ну и по мелочи, если наша структура не 100%-й лист — как подстрахуемся от циклов?
Слушайте, вы меня пытаетесь убедить, что «не всё так просто» (с)… Так я, блин, это и так знаю (я это понял, ещё когда Александреску и Майерса читал). Приведённый мной код — это этакий псевдокод, который позволяет просто концепцию понять. Конечно нужно ещё посидеть, подумать и написать гораздо больше с учётом тех требований, что есть (как то многопоточность, например). Но я напишу это один раз и буду пользовать где это необходимо., а лучше даже писать ничего не буду, а буду пользовать уже написанные инструменты, потому что в C++ это возможно. А в Java? Не уверен… Хотя может я что-то не знаю?

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

Мне вот интересно, как написать аналогичный по функционалу счётчик ссылок на Java (да-да, чтобы close автоматом вызывалась, когда она нам не нужна), ведь C++ и Java как бы эквивалентны.
Во первых вы так и не ответили на мои вопросы. Я их задал не для того, чтобы показать, что все не так просто, а чтобы вы задумались что же не так просто. Писать новый boost не надо, просто подумайте.

Так все таки, вам close звать или счетчик ссылок? Если close — то WeekReference, если счетчик ссылок — то эмулятор RAM машины можно за пару месяцев наклепать.

Они не как бы эквивалентны, они эквивалентны. ;)
Вот SQL им не эквивалентен, а вот PL/SQL уже таки да. ;)
Мне конечно же нужно решить задачу: нужно гарантировано (обязательно!) вызвать close, как можно ближе к моменту, когда ресурс уже не используется, вызвать один раз (обязательно!), при этом сделать так, чтобы снизить вероятность того, что этот вызов будет забыт при следующей «раздаче костылей» например неожиданным появлением return в середине какой-нибудь функции. Как это делается с помощью WeakReference? Приведите более развёрнуто или ссылку дайте — потому что я про них знаю, но каким боком они мне гарантируют закрытие соединения в момент, когда оно мне уже точно не нужно — я не понимаю.

Про реализацию RAM-машины за пару месяцев (!!!) — вот уж точно вся сила и простота java в одной фразе! :)

Раз вы ещё не поняли, что я неплохо осведомлён про проблемы счётчика ссылок, то вот вам ответы:

1. в той реализации, что привёл я — будем получать откровенную задницу, потому что использовать этот код в многопоточной среде (который был написан за минуту и 5 секунд обдумывания, учитывая то что я на C++ уже довольно долго не программлю на регулярной основе), это всё равно что использовать HashMap вместо ConcurrencyHashMap в той же самой многопоточной среде. Конечно код требует доработки с учётом требования многопоточности (ну не 2 месяца!). Простое, но наверное не самое лучшее решение — это реализовать что-то типа механизма sinchonized функций, чтобы в каждый момент времени только один поток мог что-то менять в разделяемом ресурсе счётчике, благо у нас функции-то элементарные и быстрые, а долгая инициализация и запуск использования ресурса запускается один раз (для реализации этого можно привлечь boost Thread, который например позволит уйти от использования системных вызовов и сделает код мультиплатформенным).

2. смотря какая либа: если это что-то старое и в ней поставляется какое-то api, которое требует после всего этого вызвать какую-то дессериализацию, то ничто не мешает написать обёртку над её api c использованием того же механизма счётчика, который будет автоматом запускать эту дессериализацию, когда обработчик из либы нам не нужен. Если это что-то новое, написанное с использованием стандарта C++11, то тут вообще проблем быть не должно, если конечно разработчик не сраный «индус» (я не о нации — я о типе разработчиков), которые умудряются даже на java такое творить, что волосы встают дыбом на самых причинных местах, если чувак реально писал с использованием стандартной техники — механизм дессериализации для функционала будет вызван автоматом. Надеюсь я вас правильно понял и ответил на этот вопрос, потому что ответил так, как понял пространное «дружить со сторонней либой, поставляемой в бинарниках»… Если не то — уточните вопрос.

3. проблема loop-ов — есть такое. Но никто не обещал «серебряной пули». Разрешается использованием механизма аналогичного weak_prt, например. А вообще крайне сложно что-то действительно универсальное для столь пространной постановки задачи, вырванной из контекста. Думать нужно… а вы что хотели?

А давайте я вам ещё помогу и сам себе задам вопрос: а что будет, если моя мегаумная ссылка в какое-нибудь статическое хранилище попадёт, в котором будет сидеть до посинениязакрытия программы? Да, это тоже проблема :) Мне отвечать? Или я уже сумел показать, что понимаю проблемы и этого подхода.

Ещё раз: я прекрасноо понимаю, что «серебряной пули» нет, но есть механизмы, применение которых оправдано или не очень в той или иной ситуации. Отличие C++ от Java в том, что я могу реализовать эти механизмы используя сам язык и возможности (в подавляющем большинстве случаев), заложенные в нём, на Java такой универсальности нет. С другой стороны механизмы уже заложенные в Java подходят наверное для большинства задач и не приходится «изобретать велосипед» каждый раз, но когда он необходим — возникает проблема, как то написание за 2 месяца эмулятора RAM машины.

Расскажите или ткните носом на то, как использовать WeakReference для автоматического вызова close как можно ближе к моменту, когда ресурс нам уже не нужен — это гораздо интереснее (ну по крайней мере для меня) чем переливать из пустого в порожнее то, что мы и так оба знаем и понимаем.
Теперь про лямбды. Кстати в Java они у меня также давно есть. ;) Не вижу проблем.

Правда в продакшене я лямбды использовать не могу, потому что по требованиям продакшена сборка должна делаться GCC 4.5, а там лямбды еще не сделаны.
Кстати в Java они у меня также давно есть. ;)
Каким макаром, интересно? Поделитесь опытом…

А по поводу лямбд и сборки GCC4.5 — есть boost, в котором лямбды ещё с использованием синтаксиса предоставляемого C++03 реализованы.

Ну и потом, даже передача функции по имени в C++ гораздо более логична и описана в любой книжке по C++. Да, тут тоже не очень красиво, что в этом случае придётся определить именованную функцию функцию за пределами текущей функции…

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

А ещё есть функторы, а на их основе можно сделать опять же делегаты…

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

В Java я таких механизмов к сожалению не нахожу, поэтому каждый раз приходится писать туеву хучу текста из всяких new, public, static + имя функции, в то время как мне всё это не нужно: я просто хочу, чтобы внутри одной функции выполнялась логика передаваемой. Может я просто чего-то не знаю — если ткнёте носом, как это сделать на Java — буду признателен (помните, что на Гугл я уже забанен:)) ).
лямбда билды доступны для публичного скачивания уже 100 лет. Кстати текущий 106-й — он же и последний, больше лямбда билдов не будет.

Уважаемый, обсуждать синтаксис любых языков скучно и не интересно. Язык для меня — это семантика, а не синтаксис. Для синтаксиса есть IDE.
Ну и должен заметить, что услышав слово DSL — я хватаюсь за пистолет (TheShade знает почему) ;)
лямбда билды доступны для публичного скачивания уже 100 лет.
То же самое про boost lambda можно сказать и присутсвие в C++ этих лямд. Поэтому ваш плач, что у вас GCC 4.5, в которой «ничаво не работает» совершенно неконструктивен — вы просто пошли по пути наименьшего сопротивления, решив не заморачиваться, а просто свалив всю вину за свою некомпетентность на язык.

Уважаемый, обсуждать синтаксис любых языков скучно и не интересно. Язык для меня — это семантика, а не синтаксис. Для синтаксиса есть IDE.
Для написания наверное убогий и многословный синтаксис — это не такая уж и большая проблема, но вот для последующей поддержки — вот это да! Когда к коду возвращаешься через пару лет, или даже кто-то другой начинает в нём разбираться — вот тут и начинается откровенное давление всей этой избыточности, которая к решению задачи по сути не имеет никакого отношения. Да и IDE разные: та же Idea всячески скрывает и сворачивает в Scala и Closure представления огромные и адово избыточные тексты на java, чтобы разработчику было проще их читать. Значит наверное не я один охреневаю от того, сколько же пустой хрени приходится забивать, а потом видеть на java, чтобы всё это хотя бы заработало. В других IDE такой дружественности как-то не заметил, а с моим кодом не только я, но и команда с разными IDE работает.

А вы случаем не из тех, которым скучно создавать для магических чисел именованные и осмысленные финализированные переменные, чтобы во время поддержки было более понятно, какой смысл был вложен в очередной «42» или что хуже «58»? Ведь на этапе написания и так всё понятно, и вообще это проблема того, кто потом в этом говне разбираться будет?

Ну и должен заметить, что услышав слово DSL — я хватаюсь за пистолет (TheShade знает почему) ;)
Надеюсь не чтобы вышибить себе мозги?.. Шутка :) Мне TheShade спросить, или вы сами поясните? Пока эта фраза совершенно бессмысленна и откровенный bullshit. Посмею только предположить, что эта неприязнь скорее всего основана только на вашем негативном опыте. Но тот же issue-трекер YouTrack от JetBrains написан с использованием DSL, и они уже не раз говорили, как этот изначально заложенный в проект механизм позволял им на порядок делать меньше работы, чем если бы они лабали всё на raw-java (что вроде бы делается с JIRA). А ещё можете спросить у Кекса на конференции, как он пишет на Java и для упрощения кода пытается делать этакие небольшие локальные DSL, чтобы не генерить 10 строк кода, когда можно обойтись более лаконичными 2. Может опыт других участников конференции позволит вам обрести катарсис и просветление в этом вопросе?
Данная дискуссия началась с вашего плача, как «Java задолбала, не продохнуть от конференций».
Мой вам совет не ходите на конференции — там скучно и одни банальности. ;)
Как я понял, ответов на свои вопросы я не получу…

Ну что ж.

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

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

Откуда вы взяли, что я считаю, что «Java задолбала» я вообще не понял: я просто указал на минусы Java (с надеждой и ожиданием разочароваться в своём видении — тут же такие гуру собрались, раз знания в народ на конференциях толкают), а также преподнёс сокращённую историю того, как классно смогли продать «серебряную пулю» под названием Java энтерпрайзу с его «индусами» и любовью к дешёвым (и не очень квалифицированным) работникам, к подхожу «компенсируем качество количеством», а также дал небольшой дайджест, что из этого вышло (сославшись на темы конференций, показывающих проблемы, о которых во время прослушивания изначально красивой сказки никто и подумать не мог).

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

В принципе гуру на поверху оказались просто пшиком и шарманщиками, что только и могут с утра до вечера крутить гайку на 12… Жаль :(
Ответы вы уже получили. Не разжеванные просто, подумайте, и все поймете.
Во первых разжевывать вам эти ответы долго — уж точно стоит выносить в отдельный пост, а не в комменты.
Во вторых, вы только один минус Java подметили правильно, все остальное чепуха. Я вам могу еще кучу накидать, причем не из серии «а пацаны то не знали» или «ораклоиды скрывают», а вполне себе общеизвестных, нужно только не выключать критический взгляд на мир. Ну и в третий раз — серебрянной пули нет: ни Java ни C++ таковыми не являются.
А в третих, вы настолько эмоционально вступаете в беседу, что аж подозрительно «не тролль ли?». ;)
image
Как думаете, мне с моей эмоциональностью стоит посоревноваться с итальянцами или всё же для начала стоит вызвать на дуэль народов Чукотки :)

Ладно… В общем история повторяется, как уже было с обсуждением Нокии 3 года назад, как происходят попытки объяснить людям, сидящим в SVN плюсы git'а, в спорах любителей SQL и noSQL и пр.: все просят «думать», заваливают терминологией (которую порой не понимают), цифрами (которые не умеют анализировать — в этой дискусии этого правда не было), после ответа на один вопрос задают «уточняющие» (наверное чтобы докапаться, где человек споткнётся), пытаются осмеять, подловить на незнании, дают советы и пр. пр., а воз и ныне там…

Ладно… Вот вам напоследок выдержка из комментария настоящего Программиста (ingspree — между прочим тоже на конференциях выступает):
Если посмотреть полную версию, то (я очень надеюсь на это!) должно быть заметно, что я таки стараюсь объяснить, о чëм речь. Большая проблема темы в том, что никто о ней не рассказывает/не пишет понятными словами, все быстро скатываются на специфичную терминологию и считают само собой разумеющимся, что всем понятно, о чëм речь и зачем это.
Наверное стоит задуматься?
НЛО прилетело и опубликовало эту надпись здесь
You made my day! :D

Мне всегда было интересно, как выглядит кармадрочер, а тут вы нарисовались.

Я прямо как бидон сметаны съел. А вы, скажите, когда друг другу...Ладно, не здесь (это место не для пошлых шуток!) :)

Ну зовите ещё друзей! «Кружите меня, кружите!» (с)
Честно говоря, мне кажется, что с Java Вам пытались продать серебряную пулю. А как только вы поняли, что это нет так (а так и быть не может), то сильно-сильно огорчились.
Java это самая обычная технология. Магии тут нет.
Честно говоря, мне кажется, что с Java Вам пытались продать серебряную пулю. А как только вы поняли, что это нет так (а так и быть не может), то сильно-сильно огорчились.
Вам неправильно кажется, потому что к тому времени, когда я начал профессионально и серьёзно заниматься программированием на java и с использованием сопутсвующих технологий, у меня мало того, что неплохой бэкграунд в программировании вообще был (т.е. я не с пальмы слезне из универа сразу в java окунулся, не видя других перспектив) и мне было с чем сравнивать, я уже много всего услышал и прочитал про Groovy, Scala, Clojure, включая критику от созтдателей этих языков программирования. Kotlin тогда, помнится, только проклёвываться начал, а Андрей Бреслав во всю рассказывал про него, естественно сравнивая с Java (естественно Java в докладе не блестал). Ну и что таить немного попрограммить на java к тому времени тоже пришлось. Ну оооочень немного… Так вот, в таких условиях мне никто и ничего продать не смог бы, отсюда и разочарования от «купленного» кота в мешкей" «серебряной пули» нет и не может быть.
Кстати, а какая же Ваша любимая технология?
C++, C#, Erlang, Haskell? По ним мало конференций? А почему, как Вы думаете?
Блин, во мне сейчас борятся питонист средней паршивости и хардкорный любитель плюсов! А можно оба?

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

Я их (конференции) не особо считаю, но по ощущениям их меньше, чем по Java. Но именно это скорее всего и создаёт ощущение какой-то большей основательности и целостности предоставляемого материала на каждой из конференций… Почему их меньше? Ну с моей точки зрения из-за меньшей популярности. Всё, что связано с Java тянется за локомативом под названием JavaEE. Энтерпрайз рулит, а впарить ему что-то ещё, когда там так основательно обосновалась Java, ох как непросто. Плюс ни за одним из этих языков не стоит такой мощи как Оракл. Да, конечно и MS устраивают всякие NativeDays, да и Google активно продвигает и использует внутри себя Python, но для Оракл Java — это в первую очередь продукт, который они всячески продают (не напрямую конечно), в первую очередь конечно же корпоративному рынку, поэтому Оракл конечно же выгодно поддерживать и подпитывать комьюнити, что в том числе делается и через кучу конференций, и через всякие тренинги, и через всякое сертифицирование и прочие мероприятия связанные с Java.

Чтобы не создавалось впечатления, что «Оракл во всём виновата» замечу, что Java конечно популярна не только потому что это Оракл (или ранее Sun) продавила — если бы в Java не было бы кое-каких действительно революционных для совего времени технологий, то как бы Sun не пыжилась — ничего бы не получилось.

Но я говорю не про прекрасное прошлое, а про немного странное настоящее, в котором, как мне кажется, конференций по Java ух как много.
Хочу, блин, в Питере хардкорную конференцию по плюсам!
Где??? Организаторыыыыыыыыыы! Ау!!!
Что, нет волонтеров время тратить?

" за одним из этих языков не стоит такой мощи как Оракл" ну дык, и уж точно не проблемы Оракла. ;)
А уж за Joker'ом Оракл стоит постольку, поскольку в Питере есть офис. Не было бы офиса — не было бы мультиков.
офис — громко сказано. Просто есть несколько человек, которым не насрать.
Хардкорную? А с какой книги Александреску начинается хардкор?

Мы организуем, не вопрос, но нужна будет помощь в экспертизе со спикерами.
Хардкор не в книгах, харкор в головах.
кажется, ты путаешь слово «хардкор» и слово «хаос». Классик сказал бы, что ты путаешь слова «хардкор» и «разруха».
Чтобы не создавалось впечатления, что «Оракл во всём виновата» замечу, что Java конечно популярна не только потому что это Оракл (или ранее Sun) продавила — если бы в Java не было бы кое-каких действительно революционных для совего времени технологий, то как бы Sun не пыжилась — ничего бы не получилось.


именно, ну собственно эти революционные технологии появились на java просто потому что на ней проще и быстрее было их создавать и развивать как опенсорс, чем например на cpp, который конечно и мощнее и быстрее и т.д.
Я не очень понял, что в вашем понимании является революционными технологиями на java (неужели вы про какой-то там Spring или Maven? — ну я вас умоляю), потому что я-то как раз под революционными технологиями понимал сами основы java, а именно JVM и Garbage Collector. И я прекрасно осознаю, что Java — это не первый язык где они применяются, но именно Java популяризировала эти идеи и сделала массовыми. И да, я не зря написал «для своего времени»: сами идеи-то по-началу создают такой эффект «Вау!», но время и опыт работы уже расставили по своим местам многое: изначальная идея «Написал один раз — запустил где угодно» оказалась не такой уж и жизнеспособной — это в принципе работает только на больших компьютерах (да и то… есть куча нюансов), а в мобильной сфере java по сути не представлена (java на Android — это на самом деле отдельная несовместимая с изначальным JVM от Оракл сущность эксплуатирующая по сути только синтаксис java), а GC (вот уж где все ждали той самой «серебряной пули», которая по сути и продала Java корпорациям и той армии дешёвых индусов в них, которые, как оказалось, даже на Java творить чёрти знает что — сходите на доклад чувака из Plumbr про утечки памяти в java — он там наверняка упомянет, кто был первым их клиентом — не удивлюсь, если то же было в своё время с java — в общем я что-то отвлёкся)… Так вот GC порой бывает слишком неуправляем и приводящий к скрытым ошибкам, которые проявляются только когда продукт уже какое-то время на продакшине, поэтому из года в год, из конференции в конференцию перетекают темы о том как правильно курить GC, да и для некоторых проектов эта технология оказалась какой-то слишком неуправляемой (ну например приведите мне хоть один более или менее популярный браузер, написанный на java, ну или игру уровня графики да хоть да хоть Call of Duty пятилетней давности).
А вот еще.
Я был бы очень рад не повторяться с докладами. Что совсем новое всегда лучше чем даже обновленное. Но почему тогда, вопросы на конференциях одни и те же? Почему тогда, вот уже с регулярностью в 3 года при любом голосовании «что рассказать» Java Memory Model если не первая — то в топе???? (как она мне надоела ;))
давай к нам на JUG с ней!
На мой взгляд, конференция — это отличный способ выбраться из своей маленькой ракушки и пообщаться с коллегами. Можно рассказать о своих проблемах и послушать как другие решали похожие. Можно найти крутых разработчиков к себе в проект. Можно пообщаться с людьми, которые разрабатывают на Java очень интересные вещи и делают это на протяжение долгих лет. Можно поговорить с людьми, которые замешаны в разработки самого языка Java и JVM, делают инструменты и фреймворки для Java разработчиков. Наконец, можно просто хорошо провести время в общении с другими профессионалами, отдохнуть от работы и набраться вдохновения. И все это за $100! О чем мы тогда вообще говорим? :)
за $90 :)
О! Тогда вообще вариантов не остается! :)
Мне кажется, что наличие энтузиастов в любом языке программирования, сделало бы огромную пользу для сообщества в этом языке. Собрать людей и дать им возможность пообщаться — большое дело!
А можно обновить расписание треков? Спасибо.
А оно изменилось? Я ничего об этом не знаю!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий