Имя: Пароль:
IT
Веб-мастеринг
И снова Java
🠗 (длинная ветка 14.09.2016 23:49)
,
0 Одинесю
 
07.09.16
21:40
Добрый вечер, ребятушки. Так случилось, что то, что учил и то, что нравилось не востребовано теперь. Может возраст. Сижу, читаю джаву, яву, ну как там ее. Захватило, интересно. Вижу многое сходство с 1С. Ну, это так - лирика. Вспомнил, что заводили тему о создании ветки по Я(Джа)ве, но не увидел. Хотел спросить знающих - по каким материалам лучше учиться. Прочитал (почти) Философия Явы, но там как-то сухо, применения не акцентируются. Подскажите, кто как выходил на сие чудо?
441 Одинесю
 
14.09.16
17:01
Подскажите нормальную литературу по Андроиду, нашел пару книг, но они какие-то староватые, разработка описана через дополнения к Эклипсу, а зашел на сайт - там уже полноценная Студия Андроид, вообще столкнулся с тем, что книги не посвевают за развитием ни Явы, ни, тем более, Андроида.
442 Shur1cIT
 
14.09.16
17:08
(441) сначало старт андройд потом курсы от гугла
443 Beduin
 
14.09.16
17:09
(441) Не привязывайся к IDE, испортишь себе все.
Цель систем сборок и программ разработки, упростить написание и правильно расположить тексты и ресурсы для компилятора. Собери пару программ руками, потом будет плевать на какой IDE.
444 Shur1cIT
 
14.09.16
17:13
(443) Думаю это лишнее и потеря времени, не каких доп навыков сие не даёт
445 Shur1cIT
 
14.09.16
17:13
(444) имееться в веду руками все делать
446 Jija Grenkov
 
14.09.16
17:15
(440) можно хакинтош поставить и на эмуляторе выполнять код.
(441) Андроид студия, сейчас дефолтная ИДЕ для андроид. Построена на базе idea. Эклипс был давно. Сразу делайте все в IDE
447 Gary417
 
14.09.16
17:41
(443) <Не привязывайся к IDE, испортишь себе все. >

в случае с андройдом, делать приложения не через студию/эклипс, это как ректальная операция на сердце
448 Torquader
 
14.09.16
18:10
Нет, если у вас есть свой сборщик кода, то IDE вам не нужно, так как ничем не поможет, а если писать руками, то писанина в блокноте часто приводит к простым ошибкам, которые IDE сразу подсвечивает.
449 Serginio1
 
14.09.16
18:23
Для информации http://rsdn.org/forum/job/6546738

поговорил тут со сведующим человеком

говорит, что мол Майкрософт может переложить .NET в Unix в своем исполнении и выбить оттуда Джаву
вроде как этим она уже занимается, но все зависит от того, будет ли это доведено до конца — не фэйковый финт ли это очередной
(прийти куснуть и забросить, как уже бывало)
и будет ли сделано качественно

вроде как признается, что C# объективно лучший, хотя упоминался Scala, и F#, как примеры того, на чем все разработчики потенциально естественно захотят писать,
если описанный выше сценарий провалится
450 NorthWind
 
14.09.16
18:28
(441) курсов в сети полно. Лучше всего, когда есть некая не дико сложная задачка. Читаешь курс и по аналогии понемногу лабаешь своё.
451 badboychik
 
14.09.16
18:32
(450) более менее хорошие курсы у Тимура Батыршинова, по андроиду, спрингу, начальной яве. Не реклама, просто больше нигде не видел в одном месте курсы по всему сразу для новичка
452 Garykom
 
гуру
14.09.16
18:32
(449) Совсем выбить не выйдет но 50% отбить сможет.
На данный момент Java в linux юзается в основном в корпоративных/бизнес приложениях и сервисах как бэк.

А вот разный прочий linux софт в последнее время часто на Mono пишут. А не только на C|C++|GTK|Qt|Python.

С точки зрения "удобства" программинга C# объективно чуть лучше чем Java.
Совсем недавно была проблема что под Java есть либы (причем бесплатные в основном) а под C# нету или только платные.

Сейчас это уже почти исправилось и можно найти нужные библиотеки и под C#, но пока жаль не все.
К примеру искал под C#/.Net нечто типа замены Apache POI и ничего не находил из GPL.
453 NorthWind
 
14.09.16
18:33
(443) на мой взгляд, проще раз в какое-то время изучать новую IDE, чем пытаться рулить проектом даже в десятки тысяч строк совсем без IDE.
454 Сниф
 
14.09.16
18:36
(428) А встречаются ли в реальности проекты, где на JS и фронт и сервер (Node) ?  То есть, JavaScript-фулстек.
455 Garykom
 
гуру
14.09.16
18:36
(452)+ Да главное забыл, сейчас новенькие говоря Java подразумевают Android ))

Поэтому MS и купили Xamarin...
456 Garykom
 
гуру
14.09.16
18:37
(454) Очень много в последнее время игрушек и сервисов даже https://ru.wikipedia.org/wiki/Cloud9
457 badboychik
 
14.09.16
18:39
(454) для параллельной обработки данных часто применяется, фреймворк Express позволяет хоть целый сайт написать на JS
458 Сниф
 
14.09.16
18:40
(456) c9.io, кстати, я затестил (бесплатную версию). Отказался потому, что бесплатный тестовый сервер отключается через 2 часа после того, как закрываешь c9.io в браузере. Для моих тестов такой вариант не подошел.
459 Jija Grenkov
 
14.09.16
18:40
(454) Конечно встречаются. Вот мне в линкедин на днях писали предложение по работе nodejs + angular удаленка на США.
460 xafavute
 
14.09.16
18:40
А реальные примеры.
А то вы на одного местного товарища похожи: Вот мсдн - там все примеры есть )))
461 badboychik
 
14.09.16
18:41
(459) че за проект предлагали пилить?
462 Сниф
 
14.09.16
18:42
(459) Здорово! С nodejs, вроде, получается разобраться. Но в angular пока меня порог вхождения не пускает )
463 Garykom
 
гуру
14.09.16
18:44
(458) А че свой то не поднимешь? Там же исходники на гитхабе все.
464 Garykom
 
гуру
14.09.16
18:44
https://trello.com/ - чистый NodeJS
465 Сниф
 
14.09.16
18:45
(463) Да так и сделал, c9.io сначала заинтриговал меня. До тех пор, пока не осознал ограничения бесплатной версии.
466 Garykom
 
гуру
14.09.16
18:46
(462) Веб конфигуратор для 1С еще не? А шо оно же 8-ка штатно в XML раскладывается и назад собирается ))
467 Jija Grenkov
 
14.09.16
18:46
(461) Я не уточнял, так как все равно по ноде у меня опыта нет.  Компания - фармакологическая исслелдовательская компания.
468 Garykom
 
гуру
14.09.16
18:46
(465) Мне Ace Editor не очень по сравнению с привычным NetBeans
469 Сниф
 
14.09.16
18:49
(468) А я, почему-то, к JetBrains WebStorm  привык. Не знаю, хорошо это или плохо.
470 Вадимович
 
14.09.16
19:48
я учу на http://javarush.ru/ уже на 7-м уровне
471 Torquader
 
14.09.16
22:16
Один такой маленький вопрос - получается, что в Java массива переменной размерности просто нет - вместо этого предлагается объект, который реализует ступенчатое выделение массива и функция, которая, по мнению разработчиков, быстро копирует элементы - и после этого они ещё будут доказывать, что Java не тормозит.
472 Torquader
 
14.09.16
22:57
Мягкие ссылки: Мы не можем ввести операторы явного управления памятью, так как это портит нашу парадигму, но мы можем сказать сборщику мусора, что объект нам больше не нужен, а потом по ссылке посмотреть - удалился ли объект или ещё нет.
Если это не извращение, то как это называется ?
473 Jija Grenkov
 
14.09.16
23:00
(471) Как вы себе представляете массив переменной размерности?
(472) Это парадигма позволяет избежать фрагментации памяти и деградации производительности в процессе эксплуатации.
474 Garykom
 
гуру
14.09.16
23:01
475 Torquader
 
14.09.16
23:05
(473) Просто, в eden память выделяется просто последовательно - выделить память большего размера, конечно, можно, но всё равно придётся копировать.
Просто, если делать "перемещение" в памяти, то не нужно изменять счётчик ссылок, а также оставлять старую версию массива в другом месте памяти (со ссылками на содержимое).
476 Garykom
 
гуру
14.09.16
23:09
Гыгы... https://market.yandex.ru/product/10494588/spec?hid=138608&track=char ничего то слизать нормально не умеют... Катюша блин...
477 Garykom
 
гуру
14.09.16
23:10
478 Garykom
 
гуру
14.09.16
23:10
(476) (477) Сорри не та тема
479 Torquader
 
14.09.16
23:11
(474) Просто у меня на Си массив выделялся блоками и никакого копирования вообще не было.
480 Jija Grenkov
 
14.09.16
23:18
(475) я не понял вашу схему перемещение.
есть Eden область которая при быстрой сборке, переносит все живие объекты в Survivor область, а Eden одним махом очищает. У каждой области свои правила работы GC. Там далеко не простой подсчет ссылок.
(479) так си славится фрагментацией памяти и нужно ваять свой велосипед. Но никто не вам не мешает написать врапер который будет хранить список массивов и будет вам блоками.
481 Jija Grenkov
 
14.09.16
23:20
Объективно С при идеальном коде процентов на 20-30 быстрее джавы. Это если сферического коня в вакууме измерять
482 Jija Grenkov
 
14.09.16
23:22
Подозреваю, что 1с раз в 100 медленнее
483 Garykom
 
гуру
14.09.16
23:26
(482) 1С это интерпретатор, Java|C# компиляторы в "объектный код" для выполнения в виртуальной машине.

Вот непонятно только почему Питон типа шустрый?
484 Torquader
 
14.09.16
23:26
(480) Я просто написал, что если мы увеличиваем размер массива, то всё равно придётся создавать его новую копию, так под массив выделяется фиксированный размер памяти - поэтому, его придётся создать на новом месте и перенести туда данные.
Вопрос стоял в том, почему нельзя было сделать один метод, который это делает, чтобы не приходилось ваять кучу объектов, которые это делают.
485 Torquader
 
14.09.16
23:27
(483) 1С это тоже компилятор, только тут объектный код с именами переменных.
486 Torquader
 
14.09.16
23:28
(483) У меня товарищ любит питон только из-за того, что в него вставки на Си++ легко писать - и из-за этого у него все алгоритмы быстрые, а, как он говорит, всё написано на питоне.
487 Garykom
 
гуру
14.09.16
23:29
(485) Гм фишка что внутрь JVM/CLR передается уже "скомпилированный" код готовый для выполнения.

А 1С же вроде каждый модуль непосредственно в процессе колбасит не?
488 Jija Grenkov
 
14.09.16
23:29
(483) Вот совсем не аргумент. Кто мешал сделать компилиь?
А питон быстры только если хорошо вылизанные куски С вызывает. Но на практике это всеравно медленне java.
489 Torquader
 
14.09.16
23:29
(480)+ Не, в java они честные на 100% - у каждого объекта есть деструктор, только он вызывается, когда сборщик мусора считает, что объект нужно удалить.
490 Garykom
 
гуру
14.09.16
23:31
491 Torquader
 
14.09.16
23:31
(487) 1С компиляет модуль в процессе его загрузки.
Причём, в управляемом, получается, что практически при каждом вызове - чтоб им пусто было.
Общие модули, так как в них нет данных, вроде как кешируются.
492 Garykom
 
гуру
14.09.16
23:34
(490)+ Кста про тормоза Java относительно C++ на простых тестах ))
https://habrahabr.ru/post/66562/
493 Jija Grenkov
 
14.09.16
23:35
(489) ползоваться диструкторами в джава, правило плохого тона. Может их уже задеприкетили.
494 Garykom
 
гуру
14.09.16
23:36
(493) Ага и выкинуть кучу старого-доброго кода? В виде основной мощщи явы? Её кучи кучи либ на все случаи жизни...
495 Jija Grenkov
 
14.09.16
23:37
(492) Я так понял, для людей С++ это религия. Вот они уверены, что все остально тормозит и все. Вот никакие тесты им не аргумент. Там вообще от силы 5% прирост
496 Jija Grenkov
 
14.09.16
23:39
(494) это к чему? Вы считаете в джава часто диструкторы использовались? Их никогда нельзя было использовать. Ведь GC может так и не убить объект и диструктор не вызовется.
497 Torquader
 
14.09.16
23:43
(496) Если бы было повторное использование объектов, то деструкторы какой-то интерес бы представляли.
А так - только подчистить не Java-ресурсы, связанные с объектом.
498 Jija Grenkov
 
14.09.16
23:45
(497) а что если диструктор не вызовется никогда?
499 Loky9
 
14.09.16
23:45
(495) Люди С++ пишут С++, а подразумевают машинный код и шкурой чувствуют как оно будет работать.
Вот тест: http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=java&lang2=gpp
-где там 5%?
500 Jija Grenkov
 
14.09.16
23:46
(499) там джава не в server mode
501 Garykom
 
гуру
14.09.16
23:46
(496) куда дели finalize() ?
502 Jija Grenkov
 
14.09.16
23:48
(499) хотя написано что в сервер. Ну в этом тесте 20-30% как я писал.
(501) про него и речь
503 Garykom
 
гуру
14.09.16
23:49
(502) ну да обычно close() делают и явно вызывают когда объект уже не нужен
504 Torquader
 
14.09.16
23:51
(502) Там, скорей всего, компилятор gcc и g++ в режиме оптимизации - он нехилый прирост производительности даёт на вычислениях за счёт того, что следит, что будет в кеше, а что там не нужно.
505 Jija Grenkov
 
14.09.16
23:52
506 Loky9
 
14.09.16
23:54
(502) там за 50%
507 Torquader
 
14.09.16
23:55
Просто, если при компиляции Си программы поставить register variable off, то есть вероятность, что Java даже обгонит Си.
508 Jija Grenkov
 
14.09.16
23:56
(504) Да там одно попадание не попадание в кэш линию будет давать результат который отличается в 2 раза.
509 Garykom
 
гуру
15.09.16
00:03
(507) Как бы Java в тестах и так обогнала куда еще то?
510 Torquader
 
15.09.16
00:06
Кстати, а эти "чудики" в тестах смухлевали - у них Си идёт в 32-бита (нигде не написано 64), а Java 64, то есть считай, См дали кеш в два раза больший.
511 Jija Grenkov
 
15.09.16
00:08
Мы ходим в обсуждениях по кругу. При измерении скорости сферического коня в вакууме как правило с++ обгонит джаву. Но в реальных больших приложениях будет наоборот.
(510) в каких?
512 Jija Grenkov
 
15.09.16
00:11
513 Loky9
 
15.09.16
00:12
(511) Игровой движок для ААА - реально большое приложение?
514 Jija Grenkov
 
15.09.16
00:12
такие тесты есть. Вот если поискать можно любой результат найти
515 Loky9
 
15.09.16
00:13
(510) NOTES:
64-bit Ubuntu quad core
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.1) 5.4.0 20160609

Sat, 23 Apr 2016 17:41:30 GMT

MAKE:
/usr/bin/g++ -c -pipe -O3 -fomit-frame-pointer -march=native -mfpmath=sse -msse3 --std=c++11 nbody.gpp-7.c++ -o nbody.gpp-7.c++.o &&  \
        /usr/bin/g++ nbody.gpp-7.c++.o -o nbody.gpp-7.gpp_run -fopenmp
rm nbody.gpp-7.c++
0.81s to complete and log all make actions

COMMAND LINE:
./nbody.gpp-7.gpp_run 50000000

PROGRAM OUTPUT:
-0.169075164
-0.169059907

Другие пока не смотрел
516 Jija Grenkov
 
15.09.16
00:13
(513) Я вообще не знаю что это такое. И с чем его сравнивать?
517 Loky9
 
15.09.16
00:15
(516) Можешь посмотреть https://www.unrealengine.com/what-is-unreal-engine-4
518 Torquader
 
15.09.16
00:18
(515) Я просто не увидел флага -m64 вот и удивился.
519 Jija Grenkov
 
15.09.16
00:21
Вот свежачек, причем коменты можно почитать. https://blog.famzah.net/2016/09/10/cpp-vs-python-vs-php-vs-java-vs-others-performance-benchmark-2016-q3/
520 Torquader
 
15.09.16
00:30
(519) Да, прикольно - Си++:оптимизация компилятора - прирост производительности в два раза - я даже не ожидал.
И питон очень хорошо себя показывает.
521 Garykom
 
гуру
15.09.16
00:31
(519) Вот очень похоже на реальность. Когда оптимизированный C++ почти наравне с Java без "тяжелых либ". А не оптимизированный C++ уступает это шустрой Java.

Но что обычные Java 8 либы тормозят ее вусмерть ((
522 Loky9
 
15.09.16
00:34
Там ещё не -O3 с её -finline-functions, -funswitch-loops, -fpredictive-commoning, -fgcse-after-reload -ftree-vectorize
523 Torquader
 
15.09.16
00:34
(521) Что-то там не так - я не верю, что обычная Java оказалась медленнее php !!!
524 Jija Grenkov
 
15.09.16
00:38
(523) для джавы понятие обычная = работающая в режиме интерпритатора и уже если совсем часто один и тот же код вызывает jvm может скомпилить его
525 Garykom
 
гуру
15.09.16
00:39
(523) Java 8 (non-std lib) vs Java 8
526 Garykom
 
гуру
15.09.16
00:41
(525)+ Блин ну смысл что в Java есть нечто вроде "Core" и есть нечто вроде "классов .Net".

И вот эти классы тормозят просто офигительно, потому что они наваяны на java и исполняются ею в рантайме.
527 Torquader
 
15.09.16
00:41
В данном случае, я бы сказал, что язык "Go", показал себя лучше всех, так как к нему никаких "нестандартностей" не применялось.
528 Garykom
 
гуру
15.09.16
00:43
(526)+ Отличие от к примеру .Net/Mono где классы написаны на C++ ))

Но офигенный плюс Java что почти всегда можно "залезть в исходники" родных JavaSE и JavaEE и посмотреть/подправить если очень нуна
529 Torquader
 
15.09.16
00:44
Но, в Go всё прикольно - функция может возвращать несколько значений сразу - не стали морочиться ни с указателями ни с исключениями - просто и ясно - как в SQL - хотите несколько значений - вот вам.
530 Garykom
 
гуру
15.09.16
00:44
(526)+ Кстати картинка очень похожая сча с JS/NodeJS когда само ядро/база дико шустрые, а вот дополнительные либы сильно тормозят ((
531 Torquader
 
15.09.16
00:45
(530) Я бы сказал, что в (519) nodejs даже java перегнал.
532 Torquader
 
15.09.16
00:46
(528) Ну, залезть в исходники можно везде - только вот нужно ли, если нужен язык, который быстро работает.
533 Jija Grenkov
 
15.09.16
01:04
(526) Там паренек из комментариев просто переписал все на массивы и примитивы.
534 Jija Grenkov
 
15.09.16
01:05
никакой магии там нет
535 Jija Grenkov
 
15.09.16
01:08
Даже out of heap memory не юзали
536 Loky9
 
15.09.16
01:26
-O3 тут ничего не дала, зато раскомментирование
s.resize( static_cast<int>(n/2) ); // pre-allocate memory
уносит в космос
537 Jija Grenkov
 
15.09.16
01:42
(530) нода в реальной жизни значительно медленнее джавы. И нет никаких причин что бы было подругому. Нода это побыстрому наваять микросервисы в местах где перформанс не важен.
Вот реальные тесты https://www.linkedin.com/pulse/nodejs-vs-java-which-faster-apis-owen-rubel
Скорее всего GO будет показывать хорошую производительность в реальных приложениях. Там тоже продвигают философию микросервисов, но пока нет нормальных инструментов разработки и отладки
538 Кирпич
 
15.09.16
09:24
(529) "функция может возвращать несколько значений сразу - не стали морочиться ни с указателями ни с исключениями"
Фиг с ними с указателями, но отсутствие исключений и дребедень с несколькими значениями из функций - пожалуй единственное, что портит этот язык. Жалко еще, что dll не делает, но это наверное добавят(может уже добавили).
539 Сниф
 
15.09.16
13:30
(537) <И нет никаких причин что бы было подругому>
А почему? Ядро Node.js написано на C++, только "морда" на JS.
ИМХО, скорость определяется способ, каким организовано хранение данных - тип БД, структура БД. Но я не спец, я только учусь)
540 transducer
 
20.09.16
11:52
А меж тем, платформа то развивается
https://habrahabr.ru/company/haulmont/blog/310148/
Опенсорс, для тех кому это важно.