LINUX.ORG.RU

Отношение к Java

 , , , ,


0

5

Скажи мне, ЛОР, почему сообщество Linux допускает проекты на Python, Perl, Lisp и прочем подобном, но воротит нос от Java, которая заруливает вышеперечисленное вдоль и поперек? Мы могли бы с легкостью увеличить скорость разработки и избавиться от детских ошибок в ПО, всего лишь начав использовать этот удобный взрослый инструмент. Неужели дело в повышенном потреблении оперативной памяти, мегабайт которой сегодня стоит меньше 30 копеек?

Перемещено mono из general



Последнее исправление: Yummies (всего исправлений: 1)

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

Под моим утверждением подпишется любой профессионал

Имеете ввиду, любой «бесполезный» профессионал (вашими же словами)? То есть любой бесполезный профессионал так и скажет, что, мол, он бесполезен?

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

твой код

Код не мой. Мой выдаёт ~4к/сек.

предельно замечательно

На чтение. И было бы очень странно, если бы он не работал.

иди разбирайся

Но зачем ковыряться в яве и делать велосипед, если тоннель работает прекрасно?

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

На чтение.

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

И было бы очень странно, если бы он не работал.

Ты тут 8 страниц орешь, что Java не может работать в принципе, потому что у тебя с ней какие-то проблемы.

Но зачем ковыряться в яве.

Литературу в свое время не прочитал - сиди теперь ковыряйся, либо просто уходи из технологии с пометкой «не осилил кроссплатформенность, безопасность, etc.»

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

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

В твоих фантазиях - да.

Ты тут 8 страниц орешь, что Java не может работать в принципе

Даже не удосужился понять точку зрения собеседника и питаешься что-то сказать.

Литературу в свое время не прочитал - сиди теперь ковыряйся

Я говорю о том, что нет смысла это делать, по той причине, что для переездов лучше подходят стандартные средства СУБД, чем JDBC.
Ты настолько фанатичен, что даже не пытаешься понять, что тебе хотят донести.

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

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

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

Сервера на mysql. Надо просто перенести таблицу размером, скажем, 100к записей. Там JDBC и все переносимо, так что проблем не должно быть, если ты юзаешь другую СУБД.

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

Кстати кидать первый результат гугла по запросу jdbc benchmark - это не очень умно.

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

зачем тебе код для перегонки таблицы? нормальные люди подобные разовые задачи решают средствами самой бд, безо всякого кода

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

Ну так и переезжай стандартными средствами, при чем здесь вообще программирование и Java тогда?!

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

зачем тебе код для перегонки таблицы?

Посмотреть какой ты эксперт, например.

Ну так и переезжай стандартными средствами, при чем здесь вообще программирование и Java тогда?!

Вот и я говорю, что для таких задач оно ни при чем. Точнее ни о чём.

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

Вот и я говорю, что для таких задач оно ни при чем.

Для задач непрограммирования Java не нужна, да, это понятно даже ребенку, что ты хочешь-то?

Мы разные анонимусы.

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

Нет, ты к чему вообще завел тему JDBC, если тебе ничего программировать и не требовалось?

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

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

Может сама MySQL запросы коверкает? К слову, мне не совсем понятно зачем ты велосипедил перенос таблиц на jdbc, если в курсе о стандартных средствах для этого.

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

Если же у тебя уже есть готовый инструмент - пользуйся им,

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

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

Может сама MySQL запросы коверкает?

Там пруфов этому нет. Если бы он юзал mysql через терминал - другое дело.

К слову, мне не совсем понятно зачем ты велосипедил перенос таблиц на jdbc, если в курсе о стандартных средствах для этого.

Для переноса, например, из oracle/mssql/dbase/... в mysql. Т.е. для того, для чего хорошего инструмента нет, или его трудно юзать.

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

Пинай человека, который писал первый.

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

Я говорю про профессиональных менеджеров проектов и архитекторов. Програмиистишки все обезьяны и профессионалами не бывают.

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

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

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

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

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

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

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

Там пруфов этому нет. Если бы он юзал mysql через терминал - другое дело.

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

Для переноса, например, из oracle/mssql/dbase/... в mysql

Приложения специально для миграции легко гуглятся ;)
Кстати, можно глянуть код, в котором jdbc так удачно засыпался по производительности? И еще, раз уже пошла такая пляска, приведи примеры либ, которые в продакшене часто юзаются через jni. Не те, которые какой-то извращенец решил притулить из интереса, а те, которые стали стандартом де-факто, потому что я, за примерно 2 года практики, юзал это дело только 1 раз, и то задача была очень специфическая и мы в конце концов от неё даже отказались.

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

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


На баше как то пишут киллометры скриптов.

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

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

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

грозился на Cpp переписать

трудно наверное переписать что то используя один лишь препроцессор.

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

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

Вносите царя.

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

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

Зависит от того, что ты считаешь продакженом и кого извращенцами. А так - OpenGL/CL/AL, ну и SDL для ведроида. Ну и загляни в jre/lib/i386 там кучка so'шек, которые сама ява и линкует. К своему удивлению я нашел там libzip.so, libsoundalsa.so и libjpeg.so. Таки да ява - клеевая платформа для связки бинарных либ. И это - в принципе не плохо.

глянуть код

Connection mysqlconn=DriverManager.getConnection(/*url*/);
mysqlstmt = mysqlconn.createStatement();

OracleDataSource ods = new OracleDataSource();
ods.setURL(/*connect url*/);
Connection conn=ods.getConnection();
Statement stmt=conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
ResultSet source=stmt.executeQuery(/*sql*/);
try
{
   while (source.next()) 
   mysqlstmt.execute("Insert into tablename values "+source.getsting(1)+","+/*etc*/+")");
}
catch (SQLException e) {System.out.println(e.getMessage());}
crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Сей быдлокод перегодяет со скоростью 4к записей в секунду. Код в Squirrel SQL перегоняет со скоростью 2к, но мне лень его искать.

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

SQL Workbench/J тоже выдаёт 2k в секунду.
mysqldump | mysql даёт 70к записей в секунду.

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

OpenGL/CL/AL, ну и SDL для ведроида

Я понял. Ну, что ж, я пишу бэкенд веб приложений, там подобные либы не особо распространены, если не сказать иначе. Также не уверен, что джава сильно используется в геймдеве, могу предположить, что разве что андроидеры часто jni пользуются. Ну а в том что hotspot использует сишные либы нет ничего удивительного. Я тебе по секрету скажу, что он вообще на крестах написан. ;)

mysqlstmt.execute(«Insert

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

f1xmAn ★★★★★
()
Последнее исправление: f1xmAn (всего исправлений: 3)

мои пять копеек по теме, так скаать из личного опыта

что хорошего в джава:

1) неплохой язык, понятный среднему девелоперу (который ООП из того же С++ в принципе не осилит)

2) не надо отвлекаться на низкоуровневые вещи (пока обычный энтерпрайзный проект не станет совсем большим, можно про какой-нибудь garbage collector даже не вспоминать), что опять-таки хорошо для среднего девелопера

3) хорошая стандартная библиотека (коллекции и прочее)

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

5) концепция языка позволила создать очень продвинутые IDE - никаких проблем с автодополнением(включая подлюченные вами библиотеки), посмотреть список вызовов метода и прочее

что плохого:

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

В чем выражается: сколько бы вы даже самых небольших приложений не стартовали, каждое из них потянет за собой всю jvm - отсюда далеко не мгновенный старт даже приложения из 3 строчек(это ж надо кучу кода jvm подгрузить с диска, загрузить в память, что-то проинициализировать и тп), большое потребление памяти

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

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

3a) boilerplate code, частенько на некоторых других языках накидать нужный код будет куда быстрее результат будет куда красивее, и запустить попроще

в итоге:

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

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

anonymous
()

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

На работе постоянно сталкиваюсь с сервисами - от управлялок различными железками типа свитчей (привет D-Link), АТС (особый луч ненависти Siemens за HiPath с Assistent), iLo, KVM, до корпоративного документооборота и прочего говна, которое работает в строго определенном диапазане версий Явы. К этому еще стоит добавить разное поведение в различных браузерах, не говоря уже об ОС. В итоге на работе я сижу на протухшем 6u9 и периодически залезаю в диспетчер задач прибить очередной залипший процесс java.exe.

ЛОР - скорее исключение, ибо в первый раз вижу как Ява не приносит анальных болей пользователю.

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

ЛОР - скорее исключение

ЛОР это не ынтерпрайз

Все остальное - нормальное поведение в ынтерпрайз.

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

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

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

нихрена не выполняется принцип - «написано однажды, работает везде»

такое тоже случалось, но как-то думал, что это скорее исключительные случаи, привередливые приложения (привет IBM-му), что попадались, были большие и специфичные, и заводились исключительно на своей jvm, а как вижу по вашему комменту - обычное дело

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

ЛОР - скорее исключение, ибо в первый раз вижу как Ява не приносит анальных болей пользователю.

На локалхостах местных школьников еще и не такое можно увидеть.

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

Страдания приносят идиоты, причем в любой сфере. А джава в руках мастера это очень мощный инструмент, которым творят добро. :)

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

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

Сделал setAutoCommit(false) на соединение - скорость та же.

Ну, что ж, я пишу бэкенд веб приложений

К бэкндам-то вопросов нет.

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

ещё один в этом треде не знает, что такое batch update и как им пользоваться, чтобы не плакать о тормозах явы.

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