|
И снова 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
|
(471) Речь про https://docs.oracle.com/javase/8/docs/api/java/util/Vector.html ?
|
|||
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/ Опенсорс, для тех кому это важно. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |