|
|
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Всем добрый день, как то меня спросил преподаватель что считается хорошим тоном в программировании? как должен выглядеть красивый и читабельный код? недолго думая я ответил - что бы легко читался был локоничным и понятным всем кто его читает. а как считаете вы? если не сложно можете дать ссылку на статью где обсуждают данный вопрос) и если можно примеры которые по вашему мнение можно считать красивым кодом)))) очень любопытно что это такое красивый код и как его писать))) Модератор: Тема перенесена из форума "C++". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 18:10 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Иди на github.com и читай исходники. Годик хотя бы. Потом сам себе ответишь какие понятнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 19:59 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
LimsЯчто считается хорошим тоном в программировании? без бутылки здесь не разобраться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 22:31 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
goto же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 23:18 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
LimsЯВсем добрый день, как то меня спросил преподаватель что считается хорошим тоном в программировании? как должен выглядеть красивый и читабельный код? недолго думая я ответил - что бы легко читался был локоничным и понятным всем кто его читает. а как считаете вы? если не сложно можете дать ссылку на статью где обсуждают данный вопрос) и если можно примеры которые по вашему мнение можно считать красивым кодом)))) очень любопытно что это такое красивый код и как его писать))) Модератор: Тема перенесена из форума "C++". понятие "красивый код" неформализуемо. никто не сможет дать определение ему. да и вообще, я бы сказал, что это -вредное понятие, код должен работать правильно, и быть читаемым и поддерживаемым, больше от него ничего не требуется. и уж 100% нехорошо преподавателю задать такие вопросы, ну разве что с целью вызвать студента на какой-то диалог, дать повод к размышлению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 23:35 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Как должен выглядеть красивый и читабельный код? вообще, самый красивый код - это тот, что еще не написан. Он же - самый нечитаемый. Самый читаемым код - helloworld , он же - самый бесполезный. нормальный промышленный код вообще как правило накрасив и плохочитаемый. Зато он работает, он полезен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 23:42 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Гугли "code smell". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2016, 12:12 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
LimsЯчто считается хорошим тоном в программировании?Хорошая программа похожа на красивый дом. В ней и фундамент /архитектура/ разумная и окна /функции/ красивые /не на перекосяк/ и поставлены в достаточном количестве и подходящем месте, ... В программе " плохого тона" все наоборот /как вроде при построении дома строителям надели повязки на глаза/. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2016, 12:33 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Красивый код - это код который помещается на одной визитной карточке :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. с таким результатом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2016, 21:09 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Есть отраслевые правила, типа Дейкстры. Есть правила языка типа PEP8. И есть корпоративные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2016, 21:38 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
MasterZiv... понятие "красивый код" неформализуемо. никто не сможет дать определение ему. +100 с ремаркой: Пару месяцев назад вышел на пенсию русский программист Александр Степанов. Сам он не использует слово "красивый" ни в качестве технического термина, ни в качестве оценочного. Студенту, твердо определившемуся в том, что программирование - его профессия ( и не только студенту) совсем не бесполезно было бы посмотреть пока лежащие на ютубе на канале A9 лекции. Мне сейчас пришел в голову такой вариант определения красоты "по Степанову" (с которым, почти наверно, он сам не согласится в смысле применимости термина "красота" применительно к коду): Чужой код красивый, когда изучая его ты понимаешь, что сам код на ту же тему выписал бы строго идентично, неотличимо точка в точу, вплоть до расстановки отступов. Идентичность кода двух программистов здесь рассматривается как высшая мера его "красоты". MasterZivда и вообще, я бы сказал, что это -вредное понятие, код должен работать правильно, и быть читаемым и поддерживаемым, больше от него ничего не требуется. +100500 в том месте, в каком человек приходит на форум и спрашивает - как мне нарисовать краксивый код. Но в смысле ремарки выше, как личная оценка, смысл которой состоит в том, что "если бы писал я, то несомненно сделал бы неотличимо точно также", "красивый" может быть использован как личная медаль, вручаемая одним программистом другому. MasterZivи уж 100% нехорошо преподавателю задать такие вопросы, ну разве что с целью вызвать студента на какой-то диалог, дать повод к размышлению В последнем смысле - очень хорошо, как минимум приемлемо. Как элемент постановки мозгов будущего ремесленника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2016, 22:02 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
красивый по словарю учитывая что 1 и 3-ее значения относятся строго к внешнему виду, думаю они тут не применимы (ну не знаю... можно попробовать команды в виде солнышка расположить, тогда он будет внешне красив, но не думаю что кто-то такой "красоте" будет рад) касательно же "2. Отличающийся полнотой и глубиной внутреннего содержания.". Ну вот.... Как по мне очень хорошо применимо к коду. Красивый код - это код, отличающийся своей полнотой и глубиной внутреннего содержания. То есть тот код, который более полно и глубоко решает возложенную на него задачу (к которому не прилагается 20 страниц пояснений, что надо сделать, что бы этот код решил поставленную задачу... как его надо настроить и подготовить, и какие ситуации надо обработать вручную, потому что этот код такого не делает) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2016, 23:25 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Я хз, Недавно, в целях оптимизации, мой код отдали на наладку другому человеку. В итоге, про*павшись 2 недели, он переписал 50 строк моего кода на свой, мотивируя "не разобрался". Глядя на его код, который мне прислали на проверку, и который втрое длиннее при той же парадигме конечного автомата, я в задумчивости. Который код красивее - тот, что ты написал, или который понятен всем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2016, 23:57 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Siemargl... Который код красивее - тот, что ты написал, или который понятен всем? Вот в точности строго на эту тему пятая лекция в серии Беседы о программировании. Где Шон Пэрент рассказывает о своем опыте работы в течении нескольких дней в качестве ревизора кода в компании Google ( 1я часть лекции 6я минута и далее) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2016, 00:19 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
LimsЯ, написан в принятом для данного языка стиле (для С, С# и Java они разные хотя синтаксически языки в одной группе), понятный без документации (имена методов и переменных), структурированный (можно расширять функционал меняя отдельные части/модули/методы а не монолит в виде путанного спагетти). Патчи должны легко читаться (для этого нужны пустые строки и изменения только тех частей которые относятся к заданию), для облегчения code review. Выражаю неодобрение тем в одной группе со мной кто коммитит косметические изменения и функционал втихую приплетает... ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2016, 04:28 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
SiemarglНедавно, в целях оптимизации, мой код отдали на наладку другому человеку. В итоге, про*павшись 2 недели, он переписал 50 строк моего кода на свой, мотивируя "не разобрался". Я думаю что он был отчасти прав. Для корпоративной разработки очень важна свободная циркуляция кода между всеми участниками команды. Если где-то есть затык - кто-то был очень гениален и написал умный но непонятный код - то этот гениальный код следует уничтожить для сохранения возможности командной работы. Можно конечно провести внутренние семинары и скрамы на тему понимания сложного фрагментано КМК любой тим-лид выберет вариант с переписыванием. Грубо говоря - хороший код - это код понятный команде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2016, 09:51 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Код следует писать руководствуясь правилом ясности: "Ясность лучше чем мастерство" "Поскольку обслуживание является важным и дорогостоящим, следует писать такие программы, как если бы обмен наиболее важной информацией, осуществляемый программой, был связан не с компьютером, выполняющим данную программу, а с людьми, которые будут читать и поддерживать исходный код в будущем (включая и самого создателя программы)." Эрик Реймонд, Искусство программирования для UNIX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2016, 10:24 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
mayton, Ты говоришь о "красоте", как о единстве стиля. Что я не вижу способа опровергать. Но ты прими в расчет, что данное поэтом знание о том, что "Мысль изреченная есть ложь" - не является открытием Тютчева Федора Ивановича, а именно в таком виде и известно всем народам мира, которые хоть на каком-нибудь, любом и каждом, языке пытались выражать мысли словами. Лао Цзы сформулировал ее так: Высказанная вслух истина перестаёт быть таковой, ибо уже утратила первичную связь с моментом истинности. я так думаю - нельзя предугадать - был "прав" коллега, "налаживающий" код от Siemargl, или нет. В более-менее устойчивой команде некое единство стиля возникает само. Как раз именно благодаря "свободному перетеканию кода между всеми участниками команды". И, опять вспоминая Лао Цзы - не нужно стремиться быть полезным . Переформулированное Львом Толстым не стремление к полезности в недеяние прямо относится к скраму - не надо делать скрам, стремиться к нему и "внедрять". Устойчивая команда сама, без применения скрама, немедленно и автоматически отторгнет чужака с иными стилистическими представлениями о красоте кода, как немедленно и автоматически отторгла Шона Пэрента из Гугла, сразу после демонстрации им своих представлений о том, что такое с его точки зрения хороший код. Единство стиля есть несомненное свидетельство того, что команда сформирована, но не свидетельством собственно совершенства и качества кода в ней. А история Шона Пэрента, в свете вышесказанного, может быть вообще изложена как история ложной деятельности - бессмысленности позиции ревизора кода от слова совсем . Т.к. результат его деятельности принимается только, если заключается в тщательном охранении уже сформированного стиля, а любая попытка его усовершенствования будет отторгнута как неприемлемая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2016, 12:10 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
uid unique... Выражаю неодобрение тем в одной группе со мной кто коммитит косметические изменения и функционал втихую приплетает... ;-) Если вы тестировщик - ваше неодобрение не требует объяснений. Если вы администратор, то медаль рисуется как-то так: На одной стороне будут изображены инструменты, используемые для пресечения такой деятельности. В случае, например, когда это ломает интерфейсы межмодульного взаимодействия буквально или в смысле ожидаемого поведения компонента. На другой стороне попробуйте разглядеть следующее - риски естественной смерти вашей системы от дыхательной недостаточности, имхо, серьезно повышаются, если такая деятельность будет пресечена полностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2016, 13:35 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonSiemarglНедавно, в целях оптимизации, мой код отдали на наладку другому человеку. В итоге, про*павшись 2 недели, он переписал 50 строк моего кода на свой, мотивируя "не разобрался". Я думаю что он был отчасти прав. Для корпоративной разработки очень важна свободная циркуляция кода между всеми участниками команды. Если где-то есть затык - кто-то был очень гениален и написал умный но непонятный код - то этот гениальный код следует уничтожить для сохранения возможности командной работы. Можно конечно провести внутренние семинары и скрамы на тему понимания сложного фрагментано КМК любой тим-лид выберет вариант с переписыванием. Грубо говоря - хороший код - это код понятный команде. IMHO, если думать до конца то очень "вредная" позиция: если нивелировать работу команды разработчиков этим принципом то производимый код станет на уровне самого слабого игрока команды. Если ещё включить в рассмотрение что и команда со временем меняется и обычно, когда код уходит из стадии активной разработки в поддержку, на смену приходит более слабая команда, то надо сразу ориентироваться на "потенциального" слабейшего участника команды. Таким образом, руководствуясь этим принципом вы сведёте работу хороших и высокооплачиваемых специалистов до уровня студентов. Я почти уверен, специалисты быстро сбегут или соберут деньги и сбегут с поддержки. Следующий аспект: от студенческого кода не следует ожидать высокой эффективности. В итоге вы получите: дорогой код, который может поддерживать даже студент, и "слабый" продукт, которым часто недовольны потребители и который не конкурентноспособен. (дорогой продукт за много денег). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2016, 18:12 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Siemargl, тут... мы все рассуждаем о коде которого никто не видел. Ты мог-бы привести эти загадочные 50 строк и их рефакторинг? Разумеется ... предварительно убрав оттуда бизнес-сведения, имена e.t.c. Я думаю что после этого мнения аудитории несколько поменяются. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2016, 21:49 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
mayton, А ты читаешь релейную логику? =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2016, 22:44 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
(пожимает плечами) Не знаю. Но аудитория среагировала мгновенно. И заметьте - безо всяких предварительных сведений о специфике вашей предметной области. Вот я и заинтересовался первоисточником. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2016, 22:49 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
LimsЯВсем добрый день, как то меня спросил преподаватель что считается хорошим тоном в программировании? как должен выглядеть красивый и читабельный код? недолго думая я ответил - что бы легко читался был локоничным и понятным всем кто его читает. Вспомнилось: "Что важнее, форма или содержание?" (ц) "Вам шашечки или ехать?" (ц) "На вкус и цвет товарищей нет." (ц) "О вкусах не спорят." (ц) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 09:32 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonSiemarglНедавно, в целях оптимизации, мой код отдали на наладку другому человеку. В итоге, про*павшись 2 недели, он переписал 50 строк моего кода на свой, мотивируя "не разобрался". Я думаю что он был отчасти прав. Для корпоративной разработки очень важна свободная циркуляция кода между всеми участниками команды. Если где-то есть затык - кто-то был очень гениален и написал умный но непонятный код - то этот гениальный код следует уничтожить для сохранения возможности командной работы. Можно конечно провести внутренние семинары и скрамы на тему понимания сложного фрагментано КМК любой тим-лид выберет вариант с переписыванием. Грубо говоря - хороший код - это код понятный команде. Плюсую... стандартизация и возможность понять код новичку на проекте (и автору кода через полгода) важнее сжатия исходников. даже стилистика должна сохраняться, у непонятного кода скорее всего и стиль совершенно другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 16:38 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
LimsЯ, тут чувак написал ответ на 893 страницы )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 16:46 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
LimsЯ, тут чувак написал ответ на 893 страницы )) http://www.proklondike.com/books/codingproch/steve_mcconnell_code_complete.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 16:48 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
boobyuid unique... Выражаю неодобрение тем в одной группе со мной кто коммитит косметические изменения и функционал втихую приплетает... ;-) Если вы тестировщик - ваше неодобрение не требует объяснений. Если вы администратор, то медаль рисуется как-то так: На одной стороне будут изображены инструменты, используемые для пресечения такой деятельности. В случае, например, когда это ломает интерфейсы межмодульного взаимодействия буквально или в смысле ожидаемого поведения компонента. За межмодули втихую смерть через мабуту вернее сначала смерть а потом мабуту ;-) В случае конечно если интерфейсы внешние и теребуют согласования с другими командами (используются). чешутся руки поменять отступы и переименовать переменные? Обсуди что примерно будет делаться с командой, почему приспичило и выбери момент (выходные?) когда нет работ по изменению функционала, коммит с косметикой идет отдельно от прочих функциональных изменений. Часто бывало так что багфикс затянулся а смержить его нереально потому что перед ним уже залит косметический коммит с кучей переименований, форматирования и тд и из этого море конфликтов и если внутри этого косметическог фикса еще и пара нужных изменений в функционале... Дорого это обходится. Не на начальном этате проекта конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 16:48 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
uid unique, Java? Я всегда знал, что java людей корежит. Они автоматически приобретают чувство собственной божественной полноценности и непогрешимости. Сразу после нарисания первого хелло ворлд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 17:57 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
uid uniqueчешутся руки поменять отступы и переименовать переменные? Обсуди что примерно будет делаться с командой, почему приспичило и выбери момент (выходные?) когда нет работ по изменению функционала, коммит с косметикой идет отдельно от прочих функциональных изменений. Часто бывало так что багфикс затянулся а смержить его нереально потому что перед ним уже залит косметический коммит с кучей переименований, форматирования и тд и из этого море конфликтов и если внутри этого косметическог фикса еще и пара нужных изменений в функционале... Дорого это обходится. Не на начальном этате проекта конечно. Увидел говно - поправь сразу и закомить. Не надо никого ждать. Если другая команда интегрируется в мастер раз в неделю то они ССЗБ. Чай руки не отсохнут ребейснуться хотябы раз в день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 18:02 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
fixxerУвидел говно - поправь сразу и закомить. Не надо никого ждать. Если другая команда интегрируется в мастер раз в неделю то они ССЗБ. Чай руки не отсохнут ребейснуться хотябы раз в день. Увидел говно. Поправил. Передал тестеру. Получил его назад. Еще раз поправил. Еще раз передал тестеру. Еще раз получил его назад.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 18:13 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
boobyuid unique, Java? Я всегда знал, что java людей корежит. Они автоматически приобретают чувство собственной божественной полноценности и непогрешимости. Сразу после нарисания первого хелло ворлд. а что в ней (Jave)/в них (джавистах) особенного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 19:12 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Иммануил Канта что в ней (Jave)/в них (джавистах) особенного? Согласно рейтингам tiobe это самый искомый хештег. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 21:53 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
booby Чужой код красивый, когда изучая его ты понимаешь, что сам код на ту же тему выписал бы строго идентично Я вот только что разгребал код на Cи, автор которого был не в курсе существования функции memset(), зато, когда потребовалось обработать однотипные данные из двух источников, не поленился скопипастить триста строк кода вместо того, чтобы union-ом объединить данные двух sql-запросов. И я абсолютно уверен, что найдётся чувак, который код на ту же тему выписал бы строго идентично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 15:55 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
softwarerкод на Cи, автор которого был не в курсе существования функции memset() softwarerскопипастить триста строк кода вместо того, чтобы union-ом объединить данные двух sql-запросов как-то верится с трудом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 19:24 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Иммануил Канткак-то верится с трудом Ничего страшного. Главное, что ключевая фраза - softwarerИ я абсолютно уверен, что найдётся чувак, который код на ту же тему выписал бы строго идентично сомнений не вызывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 20:18 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
softwarerЯ вот только что разгребал код на Cи, автор которого был не в курсе существования функции memset(), зато, когда потребовалось обработать однотипные данные из двух источников, не поленился скопипастить триста строк кода вместо того, чтобы union-ом объединить данные двух sql-запросов. код на С и union из SQL это соседние галактики. Автор мог просто не знать про union. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 20:57 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Dima Tкод на С и union из SQL это соседние галактики. Автор мог просто не знать про union. По факту - знал. Также этот момент и средствами C имеет сколько угодно более удачных решений. Но вопрос, если вспомните, вообще не об этом, а о красоте получившегося кода. Вот глядя в него, прямо хочется развести руками и сказать: "Кра-со-та!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 21:09 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
softwarerDima Tкод на С и union из SQL это соседние галактики. Автор мог просто не знать про union. По факту - знал. Также этот момент и средствами C имеет сколько угодно более удачных решений. Но вопрос, если вспомните, вообще не об этом, а о красоте получившегося кода. Вот глядя в него, прямо хочется развести руками и сказать: "Кра-со-та!" из пальца высосано: - не может человек кодить на Си и не знать memset - и не знать про union в sql (хотя там иногда бывают разные варианты "лучше") а "скопипастить триста строк кода" - это был "запущенный совсем" копипаст, когда куски немного отличаются, но трогать их уже лучше не стоит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 21:19 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Иммануил Кант- не может человек кодить на Си и не знать memset (пожимая плечами) Хорошо. Объективно говоря, я не знаю, знал он про него или нет. Что я могу утверждать - что он не использовал его в ситуациях, где тот прямо напрашивался. Во втором случае - аналогично. Меня, честно говоря, убивает не то, что он не знал - это, в конце концов, с каждым может случиться. Меня убивает то, что он не написал никакого аналога, ни функции, ни макроса, а старательно руками обнулял всё поотдельности. Иммануил Канта "скопипастить триста строк кода" - это был "запущенный совсем" копипаст, когда куски немного отличаются, но трогать их уже лучше не стоит? Примерно. Смысл этого кода в заполнении некоторой многоуровневой структуры с индексами для быстрого поиска, куски отличаются запросами, именами полей в запросах и тем, что некоторые поля структуры используются только в каком-либо одном из случаев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 01:08 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
fixxerУвидел говно - поправь сразу и закомить. Не надо никого ждать. Если другая команда интегрируется в мастер раз в неделю то они ССЗБ. Чай руки не отсохнут ребейснуться хотябы раз в день. Зависит от правил на контретном месте и проекте. Иногда коммиты не идут без ревью, бывает и такое. Изменения, не относящиеся к заданию, запрещены. А бывает полная свобода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 04:19 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
boobyuid unique, Java? Я всегда знал, что java людей корежит. Они автоматически приобретают чувство собственной божественной полноценности и непогрешимости. Сразу после нарисания первого хелло ворлд. Сейчас начнется срач. Не понимаю откуда столько пафоса по поводу Java на этом сайте - неоднократо читаю бухтение про Java. Ладно бы реалтайм системы или функциональное программирование упомянули или распределенное, но про кондовую, простую как АК47 Java бухтеть... да она простая как палка в освоении и надежная - дайте мне не полного идиота и через полгода он будет синиором на Java (если не прибью раньше так как учитель я плохой). К сожалению или к радости но ее время уходит в том виде в каком ее знали последние неполные 20 лет. Java язык со своими проблемами и недоделками (и достаточно проблемными библиотеками особено в мильтимедиа), просто сейчас это направление популярно. Были у меня C, C++, J++, C#, Objective C, Java - по крайней мере один проект на каждом из этих С подобных (синтаксис) языков у меня был у реальных заказчиков или пришлось по просьбе заказчика вьезжать и делать. Ничего сверхестественного, хотя как программист я середнячок ремесленник. Был даже не так давно хардкор на сильно усеченном ANSI C. Примерно десяток языков так или иначе попробовал в проектах на работе или дома (хобби). Питон вот пришлось немного освоить (не фанат скриптовых языков). Basic 6.0, .NET Basic это тоже было мимоходом в прошлом но меня корежит синтаксис, увы... к Бейсику со школьных лет аллергия (от преподавателя передалась). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 04:35 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
booby, Степанов - тот еще талант в смысле красивого кода и дизайна. Самое что ни на есть уродливое решение проползло в стандарт c++ из-за него, и прижилось .... зато работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 12:15 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
SiemarglЯ хз, Недавно, в целях оптимизации, мой код отдали на наладку другому человеку. В итоге, про*павшись 2 недели, он переписал 50 строк моего кода на свой, мотивируя "не разобрался". Глядя на его код, который мне прислали на проверку, и который втрое длиннее при той же парадигме конечного автомата, я в задумчивости. Который код красивее - тот, что ты написал, или который понятен всем? однозначно, первый! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 12:15 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
uid uniqueК сожалению или к радости но ее время уходит в том виде в каком ее знали последние неполные 20 лет. Не забывайте писать IMHO, когда публикуете своё мнение или просто непроверенные сведения. Если "ее" время куда-то уходит - то должны быть признаки. Вы можете указать хотя-бы 2-3 признака уходящего времени для Java? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 12:59 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonЕсли "ее" время куда-то уходит - то должны быть признаки. Вы можете указать хотя-бы 2-3 признака уходящего времени для Java? Сойдет за признак? )) Oracle прекратила разработку Java EE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 17:23 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky Oracle прекратила разработку Java EE? JEE не является часть "Core Java" - это каркас (framework) построения компонентных приложений. Есть более молодые и удачные замены, так что всё логично - "мавр сделал своё дело ...". P.S. Надеюсь, вы не станете утверждать, что наличие boost указывает на "уход це-с-крестами"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 17:45 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskymaytonЕсли "ее" время куда-то уходит - то должны быть признаки. Вы можете указать хотя-бы 2-3 признака уходящего времени для Java? Сойдет за признак? )) Oracle прекратила разработку Java EE? Дак это совсем не про то. Ты почитай что такое Java Language и Java EE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 17:52 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovAnatoly Moskovsky Oracle прекратила разработку Java EE? JEE не является часть "Core Java" - это каркас (framework) построения компонентных приложений. Есть более молодые и удачные замены, так что всё логично - "мавр сделал своё дело ...". P.S. Надеюсь, вы не станете утверждать, что наличие boost указывает на "уход це-с-крестами"? Boost не заменяет стандартную библиотеку, а наоборот расширяет ее, и из него туда обратно заимствуются новшества. Т.е. это неудачный пример замены. А молодые и удачные замены Java EE это хорошо, но если кто-то завязан на Java EE то при прекращении саппорта этой технологии разработчиком джавы, они наверняка задумаются о рисках после этого для самой джавы. Так что признаки-то есть. Хотя вы конечно можете делать вид что все ок, и Оракл не имеет тенденцию к убийству купленных технологий )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 17:59 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonТы почитай что такое Java Language и Java EE. Спасибо, я знаю в чем разница )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 17:59 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyТак что признаки-то есть. Хотя вы конечно можете делать вид что все ок, и Оракл не имеет тенденцию к убийству купленных технологий )) Тут Delphi-то закопать не могут, а Вы про Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 18:34 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyА молодые и удачные замены Java EE это хорошо, но если кто-то завязан на Java EE то при прекращении саппорта этой технологии разработчиком джавы, они наверняка задумаются о рисках после этого для самой джавы"Смешались в кучу кони, люди ..." Стагнация JEE не вчера началась и те, кому это критично - смигрировали. Те, кто не смигрировал - останутся на Java 5/6/7, пока останется железо, на котором они будут работать, и люди, которые в состоянии поддерживать устаревший код. Т.е. ситуация ничем не отличается от любого другого языка. Возможно, что даже лучше. "Риски для неё самой" - вообще не в кассу, т.к. технологии Java имеют ключевые отличия от технологий C/C++. Есть три кита: 1. JVM (и сопутствующая ему JMM) - колышет только узкий круг разработчиков этих самых ява-машин. Даже самый квалифицированный ява-программист (будь он хоть семи архитекторов во лбу) не должен погружаться в детали и тонкости; 2. JLS - колышет только разработчиков компиляторов, которых, по большому счёту ровно две штуки. Причём второй совместим с первым на самом высоком уровне; 3. Core Java - то самое JRE с которым все работают и которого всем не хватает. Всё - дальше пошли разнообразные расширения, включая технический (маркетинговый) булшит и проверенный временем олдскул. Кроме того, ява-компилятор это фронт-энд, который генерирует (только) промежуточное представление. За компоновку (линковку) и загрузку которого отвечает исключительно JVM при минимальном участии Core Java. Технически это реализуется тем, что JVM экспортирует точки входа, которые используются как нативные функции в ява-коде. Практически выражается в том, что нельзя взять рантайм (rt.jar) Oracle HotSpot и подсунуть его, например, IBM J9 или даже другой версии того же HotSpot. Но, поскольку собирать JDK/JRE требуется только самым отъявленным - никого это не волнует: используют готовый и законченный продукт. Таким образом, в отличие от C/C++ нет проблем "как скомпилировать, как слинковать, какой toolset использовать" и т.п. При этом у "контролирующего разработчика" есть возможность много чего перелопатить в потрохах и при этом не сломать обратную совместимость. Не стопроцентно, но в подавляющем большинстве случаев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 18:47 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovСтагнация JEE не вчера началась и те, кому это критично - смигрировали. Скажите это секте свидетеле ЕЕ https://javaee-guardians.io/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 18:59 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyСкажите это секте свидетеле ЕЕ https://javaee-guardians.io/ Человека, который читал петиции в защиту OS/2 сложно удивить неадекватами. P.S. Нет, OS/2 - хорошая система. Но её время - прошло. Увы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 19:08 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Dima TsoftwarerЯ вот только что разгребал код на Cи, автор которого был не в курсе существования функции memset(), зато, когда потребовалось обработать однотипные данные из двух источников, не поленился скопипастить триста строк кода вместо того, чтобы union-ом объединить данные двух sql-запросов. код на С и union из SQL это соседние галактики. Автор мог просто не знать про union. Или код писался под допотопную базу (маловероятно но кто знает что там было может какая кастрированая МS SQL Compact а потом перевели на другую базу). Ручками сливать результаты можно в один, приходилось как делать юнион руками но это была не база а удаленный поиск по http. Если подумать, в самой базе юнион тоже кто то написал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 21:55 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonuid uniqueК сожалению или к радости но ее время уходит в том виде в каком ее знали последние неполные 20 лет. Не забывайте писать IMHO, когда публикуете своё мнение или просто непроверенные сведения. Если "ее" время куда-то уходит - то должны быть признаки. Вы можете указать хотя-бы 2-3 признака уходящего времени для Java? Читаем фразу до конца - К сожалению или к радости но ее время уходит в том виде в каком ее знали последние неполные 20 лет. Все что пишу без ссылок на ресурсы, подразумевает IMHO. Сравните Java 1,2,3,4,5,6,7 и последние 8,9 - ничего в глаза не бросается нового? Не удивлюсь если 10 Java трансмутирует еще сильнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 22:08 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Ничего мне в глаза не бросается. Ничего нигде не трансмутирует. Ни языку ни технологии ничего не грозит ближайший десяток лет. И учитывая плотное "сидение" платформы Android на java-подобных грамматиках ЯП - ему тем более не грозит утекание целого сегмента разработки. Больше там ни на чем не пишут. Я-бы мог предъявить самой JVM недостаточную поддержку современных наборов команд CPU. Но к сожалению я сам не смог написать бенчмарка который-бы показал явную необходимость в этом. По сути на некоторых тестах где есть интенсивные расчёты JVM на десяток % отстаёт от gcc и идёт вровень с C#. И этот форум - тому свидетель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 22:34 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
schiКод следует писать руководствуясь правилом ясности: "Ясность лучше чем мастерство" "Поскольку обслуживание является важным и дорогостоящим, следует писать такие программы, как если бы обмен наиболее важной информацией, осуществляемый программой, был связан не с компьютером, выполняющим данную программу, а с людьми, которые будут читать и поддерживать исходный код в будущем (включая и самого создателя программы)." Эрик Реймонд, Искусство программирования для UNIX Тут возникает скорее философский вопрос - а не является-ли данное утверждение устаревшим? Понятно, что работа первых ЭВМ и программистов в машинных кодах была крайне неэффективна по сравнению с современной ситуацией, но тогда это было необходимостью, например, скриптовому приложению элементарно не хватило-бы ресурсов. Когда были написаны процитированные слова, наблюдался быстрый рост производительности. Рост вычислительных мощностей уже давно упирается в физические пределы. Если бездумно следовать этому правилу далее, мы получим домохозяек, которые пишут код, эффективность которого ну никак не может быть высока, и никакие модные маркетинговые термины типа "промышленный код", никакие модные аббревиатуры не способны решить вопрос, зато вопрос могут решить квалифицированные опытные программисты, но оставив для других возможность конфигурировать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 23:33 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
P.S. Многих современных работающих программистов можно вполне назвать "домохозяйками" - по сравнению с опытными специалистами их уровень таким и является, что не мешает им работать годами и создавать свои "шедевры", рассуждать о правильных подходах и технологиях и т.д. имхо мы уже имеем ненормальную ситуацию, когда: - обычный сайт забирает все ресурсы персонального компьютера, - для какой-то мелочи нужно обновить ОС или целый комплекс ПО, - уровень синтаксических абстрацкий вырос непомерно и больше вредит, чем помогает, - изучение конкретного инструмента или среды является более важным, чем знание технологий (далее специалист зависим от инструмента), - и т.д. Всё это следствия уменьшения порога вхождения и написания "понятного" кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 00:14 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Alexander A. SakAnatoly MoskovskyТак что признаки-то есть. Хотя вы конечно можете делать вид что все ок, и Оракл не имеет тенденцию к убийству купленных технологий )) Тут Delphi-то закопать не могут, а Вы про Java. Delphi сидит плотно в двадцатке tiobe, и никуда уходить не собирается. Даже отвоевывает позиции последние годы: http://www.tiobe.com/tiobe_index?page=Delphi/Object Pascal Даже всяким нарекламированным go, rust, erlang - до Delphi еще ползти и ползти. А Java вполне имеет шанс помереть - Swift довольно интенсивно тянут в мир Android (Java c ее непредсказуемо лагающим GC - не лучший выбор для носимой электроники и realtime, ARC там получше будет). И останется ей только удел Enterprise, где она и будет жить вечно, вместе с Cobol, C#, Delphi тем-же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 02:13 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
LimsЯВсем добрый день, как то меня спросил преподаватель что считается хорошим тоном в программировании? как должен выглядеть красивый и читабельный код? недолго думая я ответил - что бы легко читался был локоничным и понятным всем кто его читает. а как считаете вы? если не сложно можете дать ссылку на статью где обсуждают данный вопрос) и если можно примеры которые по вашему мнение можно считать красивым кодом)))) очень любопытно что это такое красивый код и как его писать))) Модератор: Тема перенесена из форума "C++". как тут уже сказали неоднократно - хорошим тоном является умение подражать себе подобным. так тебя будут любить и не считать маргиналом, и не будут подвергать обструкции - изгнании из стаи себе подобных.. а иначе как понимать этот самый тон? причем подражать можно абсолютно любой, даже предельно идиотской ерунде, вроде фрагменту подобного вполне реального кода на Java в конструкторе КАЖДОГО класса приложения, просто потому что местной группой так принято делать: Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 02:23 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
вы все про Delphi?Delphi сидит плотно в двадцатке tiobe, и никуда уходить не собирается Если составить рейтинг популярности политиков, то его возглавят давно умершие личности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 03:31 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
вы все про Delphi?А Java вполне имеет шанс помереть - Swift довольно интенсивно тянут в мир Android (Java c ее непредсказуемо лагающим GC - не лучший выбор для носимой электроники и realtime, ARC там получше будет). И останется ей только удел Enterprise, где она и будет жить вечно, вместе с Cobol, C#, Delphi тем-же... Я регулярно бываю на Java семинарах и конфах. И ничего подобного про Swift там не звучит. Удел Enteprise не просто остается. Он и есть сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 08:31 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonвы все про Delphi?А Java вполне имеет шанс помереть - Swift довольно интенсивно тянут в мир Android (Java c ее непредсказуемо лагающим GC - не лучший выбор для носимой электроники и realtime, ARC там получше будет). И останется ей только удел Enterprise, где она и будет жить вечно, вместе с Cobol, C#, Delphi тем-же... Я регулярно бываю на Java семинарах и конфах. И ничего подобного про Swift там не звучит. Было бы странно, если бы про Swift там вообще хоть что-то говорили. Это-же прямой конкурент. Но можно расслабиться, Swift сам по себе это конь в вакууме, красивый, но без сугубо Mac/iOS потрохов в виде библиотек - на текущий бесполезный. А нормальных кросплатформенных библиотек там не будет еще оооочень долго, как и в мире go, rust и прочем типа новомодном. maytonУдел Enteprise не просто остается. Он и есть сейчас. К сожалению да, современный мир корпоративного софта вот так вот извратился - оказалось, что Java это лучший из худших языков для клепания быстрой и неразваливающейся сразу наколенки для одного единственного заказчика. Причем лучший исходя из критерия доступности на рынке кодеров, и нетребовательности к качеству работы оных - дескать все дурако-защищенное by Design, хоть как-то работать будет. Т.е. исходя из нефункциональных требований. Ибо от Java до Bussiness Domain Specific Language с ее чудными, просто феерическими Spring, Struts и даже относительно удачными Hibernate - так-же далека как Земля от Солнца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 10:04 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyвы все про Delphi?Delphi сидит плотно в двадцатке tiobe, и никуда уходить не собирается Если составить рейтинг популярности политиков, то его возглавят давно умершие личности Да неужели? PL/1 был весьма и весьма популярен в свое время. Попробуй его найти в рейтинге Tiobe. А так да, там все по принципу "вы все врети" (с). Ну как может быть C (даже не C++) на первом и втором месте? Этого конечно не может быть, ведь никто из моих знакомых Java программистов на C не пишет, верно? Ну... исключая конечно того факта, что если посчитать число строк кода, которые написаны и скомпилированы для конкретного твоего карманного телефона на Android - то окажется, внезапно, что именно C кода там примерно 60-70%... этих самых строк кода :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 10:09 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
вы все про Delphi?Но можно расслабиться, Swift сам по себе это конь в вакууме, красивый, но без сугубо Mac/iOS потрохов в виде библиотек - на текущий бесполезный. А нормальных кросплатформенных библиотек там не будет еще оооочень долго, как и в мире go, rust и прочем типа новомодном. Ну слава богу... А то я уж думал - началась революция... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 10:56 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
вы все про Delphi?К сожалению да, современный мир корпоративного софта вот так вот извратился - оказалось, что Java это лучший из худших языков для клепания быстрой и неразваливающейся сразу наколенки для одного единственного заказчика. Причем лучший исходя из критерия доступности на рынке кодеров, и нетребовательности к качеству работы оных - дескать все дурако-защищенное by Design, хоть как-то работать будет. Т.е. исходя из нефункциональных требований. Давай закроем глаза и вернёмся в далекий 1996-97 год. Рынок серверного ПО. Эпоха доткомов. Кластеризации нет. Облаков нет. Есть просто сайты. Есть сайты для бизнеса. Магазины. На чем кодят? Perl (о святые небеса!). PHP (классика йопта!). ASP(Basic для Microsoft-IIS). И ходят слухи что Yahoo использует Lisp. Где-то сбоку еще стоит bash и всякая экзотика которая работает только в олдскульных учебниках по Unix. И есть нишевые сервера и системы под ключ со своими языками и dbms типа Intersystems Cache, комьюнити которых ничтожно мало. А на сях серверное (CGI) ПО не кодят. (Здесь я могу ошибаться но мне лично не известно о таком опыте либо его С++ доля в общем рынке весьма мала). У разработчиков класса двухзвенка есть все. А у веб-разработчиков высокой квалификации и со знанием архитектуры и с пониманием того что необходимо создавать повторно-используемое ПО на руках ничего нет. Perl или PHP позволяют быстро создать "хомяк" или "визитку" но не годятся для серезных сайтов. А разработчику нужно много интеграции. По сути бизнес-порталы это сетка взаимодействия огромного количества сервисов. И нужно их как-то дружить. Трансферить сущности. Нужна даже не крослатформенность. Об этом речи пока нет. Нужна гетерогенность и инероперабельность. Появление собственно Java-исполняющей среды не было шумным. Собственно Java первых версий была "гадким утёнком". У нее была плохая мультипоточность и плохой GC. Но было комьюнити которое ощущало ПОТРЕБНОСТЬ в подобном слое продуктов и это комьюнити готово было использовать Java на server-side даже в том виде в котором есть. Есть возможности ООП. К слову комьюнити всё время испытвает конкуренцию со стороны MS (вспомним Microsoft J++) и отток специалистов. И сегодняшний рейтинг в 20% по метрикам Tiobe это следствие того что комьюнити существует. И его влияние сильнО. И я-бы не стал натягивать такие эпитеты как лучший из худших. Было с чем сравнивать и было хуже. И пока существует OpenJDK за судьбу платформы можно не беспокоиться. Что вы говорите? Оракл? Да он сегодня стандартизирует и сертифицирует JVMs. И может чего-то там в судах отсуживать. Но на этом пожалуй все. Он не рулит мировым сообществом. И я-бы не стал драматизировать из за каких-то там задержек в релизах. Если я ошибся в timeline - топрошу простить т.к. не помню наизусть всех ключевых дат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 11:35 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonНо на этом пожалуй все. Он не рулит мировым сообществом. И я-бы не стал драматизировать из за каких-то там задержек в релизах. Если я ошибся в timeline - топрошу простить т.к. не помню наизусть всех ключевых дат. хватит уже ерунду пороть-то. facebook, vk - используют PHP. google все свои ключевые сервисы держит на C++ eBay изначально был на C++, частично переписался на Java, довольно неудачно, и сейчас вместе с paypal переписывается на ... Node.JS случаи успешного применения Java в сфере крупного сайтостроения единичны. зато очень показательны вот такие вот случаи, которые всю "невиданную мощу" этого вашего GC выдают ну... несколько в нелицеприятном свете. https://habrahabr.ru/company/odnoklassniki/blog/148139/ https://habrahabr.ru/company/odnoklassniki/blog/139185/ прикольно, да? взяли супер-пупер язык, выкинули из него ключевое, и взамен воткнули старый добрый C-ный malloc() заместо. укатайка. а так все в мире Java хорошо, базовые концепции не хромают на обе ноги :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 11:46 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
А что facebook - светоч сайтостроения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 11:52 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
бухалтер фантоцциP.S. Многих современных работающих программистов можно вполне назвать "домохозяйками" - по сравнению с опытными специалистами их уровень таким и является, что не мешает им работать годами и создавать свои "шедевры", рассуждать о правильных подходах и технологиях и т.д. имхо мы уже имеем ненормальную ситуацию, когда: - обычный сайт забирает все ресурсы персонального компьютера, - для какой-то мелочи нужно обновить ОС или целый комплекс ПО, - уровень синтаксических абстрацкий вырос непомерно и больше вредит, чем помогает, - изучение конкретного инструмента или среды является более важным, чем знание технологий (далее специалист зависим от инструмента), - и т.д. Всё это следствия уменьшения порога вхождения и написания "понятного" кода. Ну как тут не вспомнить еще одного классика: "Успех системы MULTICS был весьма неоднозначен. Эта система разрабатывалась для того, чтобы обеспечить сотни пользователей машиной, немногим более мощной, чем персональный компьютер с процессором Intel 386, хотя при этом имеющей возможность работы со значительно большим количеством устройств ввода-вывода. Это было не так уж безумно, как может показаться, потому что в те дни люди знали, как писать маленькие, эффективные программы - навык, который впоследствии был утерян. " Я все-таки считаю, что Реймонд прав и его высказывание ни в коей мере не устарело. Сопровождение по-прежнему является существенной фазой существования проекта, и чем понятнее код, тем меньше времени уходит на сопровождение конкретного инцидента :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 12:14 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
schi"Успех системы MULTICS был весьма неоднозначен. Эта система разрабатывалась для того, чтобы обеспечить сотни пользователей машиной, немногим более мощной, чем персональный компьютер с процессором Intel 386, хотя при этом имеющей возможность работы со значительно большим количеством устройств ввода-вывода. Это было не так уж безумно, как может показаться, потому что в те дни люди знали, как писать маленькие, эффективные программы - навык, который впоследствии был утерян. " Я все-таки считаю, что Реймонд прав и его высказывание ни в коей мере не устарело. Сопровождение по-прежнему является существенной фазой существования проекта, и чем понятнее код, тем меньше времени уходит на сопровождение конкретного инцидента :) По поводу анекдотов где мощности ПК не хватает чтобы распечатать страничку на принтере. Я конечно ко всему этому плюсую. Есть завтык в части перформанс-менеджемента. Но я добавлю. Те господа, которые с придыханием вспомниают что когда-то деревья были высокие и трава зеленая совершенно забыли что банки выполняли более узкий круг задач. Магазины в 99% принимали только наличку. Карточные продукты не существовали как класс. Не было интернетов. Телефон и телеграф заменяли сабж (насколько хорошо или плохо - решите сами я тут затрудняюсь). На заводах автоматизация была - но другая. На аналогово-цифровой вычислительной технике где память иногда измерялась килобайтами. Бухгалтерия большую часть работы считала на калькуляторах, деревянных счетах (дада мать вашу это Сов-союз детка!) или на такой машинке которая называлась Феликс и для того чтобы она мать ее считала - нужно крутить ручку сбоку. А селфи шлёпались не на сматрфон а на ФЭД или Смена. Или Зоркий. Или зенит. Хранились не в цифре а ложились на целлулоид + серебро и чтобы получить своё чортово селфи нужно было либо проявлять самому (ага клуб йуного фотографа) или ...уячить в местный сервисный центр (Kodak и Fujitsu только в 90х появились). И хопа - фотоувеличитель и печатать. Так что дорогие мои ностальгирующие (ш)кодеры. Никому ваш мультикс не всрался. Он был продуктом СВОЕГО времени где КПД программиста оправдывался. А сегодня - кодинг на ассемблере и тотальная оптимизация - это путь в никуда. Но вы можете побухтеть и поворчать здесь в скруле. А куле. Тут можно. И я тоже с вами вместе покодю демки на 64к с летающими Donuts. Авось возмут в гейм-контору. Вот так вот, чортовы хипстеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 12:28 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonА что facebook - светоч сайтостроения? да нет конечно, всем нужно равняться на вон твой сугубо intranet сайт, которым пользуются 2.5 внутрикорпоративных анонимуса. ну, как на пример высокотехнологичной светоч разработки, highload, все такое :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 12:54 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
schiбухалтер фантоцциP.S. Многих современных работающих программистов можно вполне назвать "домохозяйками" - по сравнению с опытными специалистами их уровень таким и является, что не мешает им работать годами и создавать свои "шедевры", рассуждать о правильных подходах и технологиях и т.д. имхо мы уже имеем ненормальную ситуацию, когда: - обычный сайт забирает все ресурсы персонального компьютера, - для какой-то мелочи нужно обновить ОС или целый комплекс ПО, - уровень синтаксических абстрацкий вырос непомерно и больше вредит, чем помогает, - изучение конкретного инструмента или среды является более важным, чем знание технологий (далее специалист зависим от инструмента), - и т.д. Всё это следствия уменьшения порога вхождения и написания "понятного" кода. Ну как тут не вспомнить еще одного классика: "Успех системы MULTICS был весьма неоднозначен. Эта система разрабатывалась для того, чтобы обеспечить сотни пользователей машиной, немногим более мощной, чем персональный компьютер с процессором Intel 386, хотя при этом имеющей возможность работы со значительно большим количеством устройств ввода-вывода. Это было не так уж безумно, как может показаться, потому что в те дни люди знали, как писать маленькие, эффективные программы - навык, который впоследствии был утерян. " Я все-таки считаю, что Реймонд прав и его высказывание ни в коей мере не устарело. Сопровождение по-прежнему является существенной фазой существования проекта, и чем понятнее код, тем меньше времени уходит на сопровождение конкретного инцидента :)Разумеется, Реймонд во многом прав, и делить мир на чёрное и белое нельзя. Но задуматься наверное стоит, потому я и подкинул "дровишек". Не существует серебряной пули, но существуют наши привычки, а мир постепенно меняется, иногда можно внезапно попасть в неприятное положение, когда поступил привычно, но в корне неправильно, потом задним числом себя ругаешь - какой-же я был дурак, поэтому не стоит слепо доверять "проверенным" догмам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 13:14 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Ну ОК. Пускай будет фейсбух. Я не против. Только в выборку предлагаю добавить следующее. 1) Facebook 2) VK.com 3) Instagram 4) LinkedIn 5) Amazon.com 6) twitter.com 7) Stackoverflow 8) Habrahabr.ru 9) rsdn.ru 10) sql.ru :) Это весьма субъективный список сайтов который я предлагаю для рассмотрения. Из них я осведомлен об sql.ru + сейча на ходу одним глазом почитаю про фейс-бух. А стек остальных представляет для меня загадку. Ну... разве что я читал про twitter/Storm в ракурсе какого-то семинара. Про архитектуру остальных я почти ничего не знаю т.ч. мы в равных условиях и я - не презвзято отношусь к вопросу. Но если у вас есть еще штук 10 сайтов то давайте их тоже добавим. Гугол я предлагаю не рассматривать. Как раз именно потому-что это действительно сборная солянка из более чем 100 технологий и мы решительно потонем в хештегах и сраче на тему "на чем он написан" но не придем решительно ни к какому выводу. Что должно быть в результате рассмотрения. Ну... наверное табличка где будет как-то так. Сайт. Список технологий по хештегам. LAMP (Linux-Apache) не стоит описывать. И так очевидно. Будем считать что Апачи+Линукс по дефолту всегда есть. JavaScript тоже писать не надо. И так очевидно что он есть. НО если есть интересный фреймворк на базе JS то можно указать Query/ANgular к примеру. Пример отчотика: SiteTechnology listfacebook.comPHP, HipHop, C++, Java, Python, Erlang, Apache Thrift, Objective-C, Ocaml, Haskel, Rubytwitter.com Storm (возможно)sql.ru Windows Server (хз какой), MS-SQL (хз какой), +Форумный движок (хз какой я забыл) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 13:20 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
mayton1) Facebook 2) VK.com 3) Instagram 4) LinkedIn 5) Amazon.com 6) twitter.com 7) Stackoverflow 8) Habrahabr.ru 9) rsdn.ru 10) sql.ru :) 1) да да, Objective C. Стоит там ферма из MacMini, коптит анатитику просмотра котиков для Цукерберга. 2) VK.com - HPHP, C++, mysql, своя какая-то KDB, на C писанная 3) Instagram - PostgreSQL, Djanjo (Python) http://highscalability.com/blog/2012/4/16/instagram-architecture-update-whats-new-with-instagram.html 4) LinkedIn - Java, якобы 5) Amazon - слишком ни обо всем, там же платформа все http://highscalability.com/amazon-architecture 6) Twitter давно и смешно борется c масштабируемостью, бросаясь в крайности перехода с Rails на Scala и еще куда-нибудь потом 7) Stackoverflow - внезапно .NET http://highscalability.com/blog/2014/7/21/stackoverflow-update-560m-pageviews-a-month-25-servers-and-i.html 8) 9) 10) - это ни разу не highload, так, обычые региональные сайты с трафиком 1 страница в секунду на ноду, там и Java справится вполне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 14:46 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
mayton, Наоборот. Крупные сайты с большой посещаемостью могут себе позволить штучные решения. Вопрос про энетрпрайз-мейнстрим. Я бы брал ibm.com, oracle.com etc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 14:46 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojava6) Twitter давно и смешно борется c масштабируемостью, бросаясь в крайности перехода с Rails на Scala и еще куда-нибудь потом Я не различаю рантайм Java/Scala. Можно через слеш или через запятую писать. Тоже с груви. nojava8) 9) 10) - это ни разу не highload, так, обычые региональные сайты с трафиком 1 страница в секунду на ноду, там и Java справится вполне. Я готов согласиться но хотелось-бы дать на замену 3 особо нагруженных портала. Я навскидку ничего не помню из того что сам посещаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 14:58 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonnojava6) Twitter давно и смешно борется c масштабируемостью, бросаясь в крайности перехода с Rails на Scala и еще куда-нибудь потом Я не различаю рантайм Java/Scala. Можно через слеш или через запятую писать. Тоже с груви. в общем-то да, у них всех одна большая родовая травма - JVM/Heap/GC как говорится, если взять и смешать бочку... мягко говоря не мёда и бочку меда, то ... две бочки меда точно не получятся. maytonnojava8) 9) 10) - это ни разу не highload, так, обычые региональные сайты с трафиком 1 страница в секунду на ноду, там и Java справится вполне. Я готов согласиться но хотелось-бы дать на замену 3 особо нагруженных портала. Я навскидку ничего не помню из того что сам посещаю. в мире highload к Java, .NET и подобному относятся довольно настороженно. примеры же серверов баз данных, написанных на Java - и вовсе показательны - даже Facebook окончательно отказался Cassandra что, в общем-то, уже говорит о реальной применимости Java к написанию core technology стека, в сравнении с С/C++ кроме того, в вопросе быстрого хот-фикс-деплоя и она ни разу не выигрывает - компиляция то требуется, как ни крути Python и PHP тут вне конкуренции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 15:12 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojavaPython и PHP тут вне конкуренции Не уверен что Python + PHP могут с уверенностью претендовать на хайлоад. Я не знаю что там этот Цукерберх придумал. Но PHP в былые времена не имел возможности быстро отстреливать ответы. Нужны какие-то там ускорители или присадки к классической модели HTTP-request-fork(). Я признаю что фейсбук быстр но это не заслуга PHP. А скорее плод длительного переосмысления создателем всего workflow. И PHP там не простой а с тюнингом. По поводу Пайтона. Ну... он тоже не блещет скоростью . Наверное только в кластере таких-же машин и под nginx он способен расти по скорости. Некоторые ссылаются на гугол. Дескыть он его юзает. Ну и что? Гугол нельзя рассматривать как 1 физичесекий сервер. Тоесть сама формулировка - натяжка. У гугла грамотное облако с балансом с географией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 15:22 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonnojavaPython и PHP тут вне конкуренции Не уверен что Python + PHP могут с уверенностью претендовать на хайлоад. VK и Facebook вообще навострились PHP код кросскомпилировать в C++ код и потом его линковать. Хотя это у них уже не мейнстрим, они научились делать JIT компилирование, насколько я помню. А в остальном - в чем проблема? На PHP вполне себе можно запилить приложение, которое будет перемалывать 200-300 тысяч запросов в секунду с одной физической ноды, причем время реакции будет гарантировано, в отличие от. maytonЯ не знаю что там этот Цукерберх придумал. Но PHP в былые времена не имел возможности быстро отстреливать ответы. Нужны какие-то там ускорители или присадки к классической модели HTTP-request-fork(). Я признаю что фейсбук быстр но это не заслуга PHP. А скорее плод длительного переосмысления создателем всего workflow. И PHP там не простой а с тюнингом. естественно не простой. компилируемый. но и без этого он довольно резко работал, ибо львиная доля временных затрат (более 98%) она лежит вне мира PHP - там больше базы данных, memcache, сетевой трафик и прочее. maytonПо поводу Пайтона. Ну... он тоже не блещет скоростью . Наверное только в кластере таких-же машин и под nginx он способен расти по скорости. еще раз - там основная работа в таких проектах сидит на стороне баз данных и кешей. плюс временные затраты на сетевой трафик. все эти скриптовые интерпретируемые языки в общем времени веб обработки занимает доли процентов, ими можно пренебречь. ну уменьшишь ты с 0.1% до 0.001% время рендеринга страницы, и что? этого никто не заметит. maytonНекоторые ссылаются на гугол. Дескыть он его юзает. Ну и что? Гугол нельзя рассматривать как 1 физичесекий сервер. Тоесть сама формулировка - натяжка. У гугла грамотное облако с балансом с географией. гугл для ключевых сервисов (поиск) использует в основном C++. а для всякой вспомогательной ерунды - все что угодно. к примеру часть gmail и google docs написано на GWT, т.е. на Java. там просто не нужен highload by design, не критичные сервисы (в части получения прибыли). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 15:35 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojavaгугл для ключевых сервисов (поиск) использует в основном C++. а для всякой вспомогательной ерунды - все что угодно. к примеру часть gmail и google docs написано на GWT, т.е. на Java. там просто не нужен highload by design, не критичные сервисы (в части получения прибыли). Я начал тему сравнения сайтов и технологий чтобы прояснить для себя и для всех какие технологии где используются. Хотя-бы по названиям. А гугл лучше убрать из этого сравнения. Он велик как вселенная и на любой вопрос будет ответ и ДА и НЕТ и вообще все будет зыбкое и экспертное. Вобщем прошу поскипаем гугол пока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 15:42 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Накатил патчик на табличку. Надо детализировать и раскрыть ссылки. SiteTechnology listfacebook.comPHP, HipHop, C++, Java, Python, Erlang, Apache Thrift, Objective-C, Ocaml, Haskel, Rubytwitter.com Storm (возможно),Rails, ScalaVK.comHPHP, C++, mysql, своя какая-то KDB, на C писаннаяsql.ru Windows Server (хз какой), MS-SQL (хз какой), +Форумный движок (хз какой я забыл)Instagram PostgreSQL, Djanjo (Python) LinkedIn Java, якобыAmazon http://highscalability.com/amazon-architecture Stackoverflow.NET ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 15:48 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonnojavaгугл для ключевых сервисов (поиск) использует в основном C++. а для всякой вспомогательной ерунды - все что угодно. к примеру часть gmail и google docs написано на GWT, т.е. на Java. там просто не нужен highload by design, не критичные сервисы (в части получения прибыли). Я начал тему сравнения сайтов и технологий чтобы прояснить для себя и для всех какие технологии где используются. Хотя-бы по названиям. какая разница, что где используется? какой-нибудь Bank Of America поди до сих пор Cobol использует, с Java обвесом вокруг, чтоб веб формы можно было вводить. Вопрос - что в тренде. А сейчас, в тренде, как ни странно, Node.JS. Вот парни из Paypal нагрядно показали, как в два раза увеличили пропускную способность и уменьшили время отклика. Так это было еще три года назад! https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/ Uber, LinkedLn, Netflix - идут туда-же. https://www.quora.com/What-are-the-biggest-websites-built-with-Node-js-on-the-server-side ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 15:53 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojavaВопрос - что в тренде. А сейчас, в тренде, как ни странно, Node.JS. Вот парни из Paypal нагрядно показали, как в два раза увеличили пропускную способность и уменьшили время отклика. Так это было еще три года назад! Мы не можем так легкомысленно говорить о трендах. Или надо просто добавлять IMHO. Хотя внутренне я полностью согласен что у Node.JS есть перспектива выдавить этот бестолковый PHP с нагромождением подпорок и протезов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 15:59 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
+Uber SiteTechnology listfacebook.comPHP, HipHop, C++, Java, Python, Erlang, Apache Thrift, Objective-C, Ocaml, Haskel, Rubytwitter.com Storm (возможно),Rails, ScalaVK.comHPHP, C++, mysql, своя какая-то KDB, на C писаннаяsql.ru Windows Server (хз какой), MS-SQL (хз какой), +Форумный движок (хз какой я забыл)Instagram PostgreSQL, Djanjo (Python) LinkedIn Java, якобыAmazon http://highscalability.com/amazon-architecture Stackoverflow.NETUber Python, NodeJS, Redis (Objective-C, Java for Iphone,Andr.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 16:05 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonnojavaВопрос - что в тренде. А сейчас, в тренде, как ни странно, Node.JS. Вот парни из Paypal нагрядно показали, как в два раза увеличили пропускную способность и уменьшили время отклика. Так это было еще три года назад! Мы не можем так легкомысленно говорить о трендах. Или надо просто добавлять IMHO. Хотя внутренне я полностью согласен что у Node.JS есть перспектива выдавить этот бестолковый PHP с нагромождением подпорок и протезов. Нода скорее Java выдавит. Потому что PHP и так замечательно работает, и, к слову, для веб задач он спроектирован просто идеально, один его принцип live-to-die заслуживает всяческого уважения и прочего респектования перед авторами. В этом плане Node.JS сделан куда хуже (там нет live-to-die, зато есть засилье call back замыканий в виде мегалесенок, которое требует выворачивания мозгов набекрень, типовые Java кодеры к такому более расположены, чем PHP-ники) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 16:11 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojavamaytonпропущено... Не уверен что Python + PHP могут с уверенностью претендовать на хайлоад. VK и Facebook вообще навострились PHP код кросскомпилировать в C++ код и потом его линковать. Хотя это у них уже не мейнстрим, они научились делать JIT компилирование, насколько я помню . ... там основная работа в таких проектах сидит на стороне баз данных и кешей. плюс временные затраты на сетевой трафик. все эти скриптовые интерпретируемые языки в общем времени веб обработки занимает доли процентов, ими можно пренебречь. ну уменьшишь ты с 0.1% до 0.001% время рендеринга страницы, и что? этого никто не заметит. гугл для ключевых сервисов (поиск) использует в основном C++. а для всякой вспомогательной ерунды - все что угодно. Совершенно верно - в Facebook используют JIT-компилятор для PHP: we were pursuing a just-in-time (JIT) compilation approach called HHVM as a successor to our PHP→C++ compiler called HPHPc - link По поводу "скриптовые интерпретируемые языки в общем времени веб обработки занимает доли процентов" и это да, и плюс в части веб в Facebook - экономия на PHP-разработчиках вместо C++-ников больше, чем экономия на серверах. Вот в поисковике google наоборот - экономия на серверах выходит выгоднее, поэтому на С++ не экономят. C и C++ в серьёзных highload проектах. 1. Основные оптимизации касаются сети: - замена железа Ethernet на RoCE-Ethernet/Infiniband - замена софта TCP-sockets на SDP-sockets over RDMA 2. И разработка собственных no-SQL+no-ACID DBMS. http://tech.marksblogg.com/billion-nyc-taxi-rides-nvidia-tesla-mapd.html 1.1 Billion Taxi Rides with MapD & 8 Nvidia Tesla K80s ... The SQL looks very much like what you'd use with most RDBMS offerings. А в контексте топика - вот хороший тон в программировании писать код СУБД на CUDA C++ под GPU? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 16:21 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
HHVM http://tech.marksblogg.com/billion-nyc-taxi-rides-nvidia-tesla-mapd.html 1.1 Billion Taxi Rides with MapD & 8 Nvidia Tesla K80s ... The SQL looks very much like what you'd use with most RDBMS offerings. А в контексте топика - вот хороший тон в программировании писать код СУБД на CUDA C++ под GPU? MapD - прикольная идея, спасибо за ссылку. А так - почему и нет? Специализированные на оборудовании СУБД движки в мире BigData/BI рулят со страшной силой. Netezza тому пример, или Oracle Exadata с их HCC. Но затолкать датабазу в GPU - это таки пять, при том, что тот C, что поставляется с OpenCL и подобным - вполне достаточен для подобного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 16:46 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
LimsЯ недолго думая я ответил - что бы легко читался был локоничным и понятным всем кто его читает. а как считаете вы? В нормальных языках типа F#, пробелы-значимые символы! Так что хочешь-не хочешь абсолютно все пишут одинаково и красиво! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 17:25 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
вы все про Delphi?зато очень показательны вот такие вот случаи, которые всю "невиданную мощу" этого вашего GC выдаютЧто вы к этой сборке мусора прицепились??? Есть такая Azul Systems. Начинала в первой половине нулевых со специализированных железок, сейчас нужные фичи есть в общецелевых операционных системах. Собственный сборщик мусора - в разы быстрее Hotspot в среднем и на порядки - по максимальным задержкам. Цена вопроса - несколько меньшая пропускная способность (~15%) Года три-четыре назад в их "успешных историях" было "у клиента, в нашей JVM, работает приложение с кучей в 256 мегабайт". Года полтора-два назад - "... пол-терабайта". Вот положа ногу на ногу - много кто может похвастаться управлением осьмушкой терабайта в "пофигу каком "самом лучшем языке программирования""? P.S. Как уже задрали эти разговоры в пользу бедных ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 17:35 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
HHVM http://tech.marksblogg.com/billion-nyc-taxi-rides-nvidia-tesla-mapd.html 1.1 Billion Taxi Rides with MapD & 8 Nvidia Tesla K80s ... The SQL looks very much like what you'd use with most RDBMS offerings. А в контексте топика - вот хороший тон в программировании писать код СУБД на CUDA C++ под GPU? Я к сожалению пока не понимаю что это за бенчмарк и что он показывает. Прошу вас дать краткую русскоязычную аннотацию о чем это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 17:43 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovвы все про Delphi?зато очень показательны вот такие вот случаи, которые всю "невиданную мощу" этого вашего GC выдаютЧто вы к этой сборке мусора прицепились??? Есть такая Azul Systems. Начинала в первой половине нулевых со специализированных железок, сейчас нужные фичи есть в общецелевых операционных системах. Собственный сборщик мусора - в разы быстрее Hotspot в среднем и на порядки - по максимальным задержкам. Цена вопроса - несколько меньшая пропускная способность (~15%) Года три-четыре назад в их "успешных историях" было "у клиента, в нашей JVM, работает приложение с кучей в 256 мегабайт". Года полтора-два назад - "... пол-терабайта". Ок, теперь мы знаем название чудо костылей, которые исправляют врожденное хромание на обе ноги - Azul Systems правда не исправляют, но пациент начинает заметно бодрее прыгать, и не зависать в задумчивости на 6...7 минут, только на полминуты, не более :) Basil A. SidorovВот положа ногу на ногу - много кто может похвастаться управлением осьмушкой терабайта в "пофигу каком "самом лучшем языке программирования""? P.S. Как уже задрали эти разговоры в пользу бедных ... да любой нормальный, а не "управляемый" язык программирования такое может, что там мочь-то, malloc()/free()/mmap() - это системные вызовы, к языку никак не привязанные. я для small chunk allocation существуют 100500 вариаций на тему tcmalloc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 22:01 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojavaкакая разница, что где используется? какой-нибудь Bank Of America поди до сих пор Cobol использует, с Java обвесом вокруг, чтоб веб формы можно было вводить. + именно так... 100% никто не скажет - подписка за разглашение но смею предположитъ что в БоФе как и во всех приличных банках деньги скорее всего считаются на мейфреймах на старом софте, Java для вторичных направлений (документооборот) и веб фасадов (как и во всех банках в NA). Мода на перенос меинфреймов на веб началась в 2000-м. Не все ли равно на чем написано, главное чтоб работало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 22:31 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
[quot вы все про Delphi?]Basil A. Sidorovпропущено... Что вы к этой сборке мусора прицепились??? Вообще то Java есть и без уборки мусора, встречалась real time Java там аллокация ручками как в С. Давненько это было но могу найти ресурсы. В iOS Objective C перешли на reference count и GC deprecated в ОS X но конечно культура кодирования требуется высокая... и тестирование более долгое. У меня приложение прошло контроль в эппле и тестирование в свое время а потом нашел утечки памяти. Зато тормозов таких нет как с уборщиком мусора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 22:38 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojavaкроме того, в вопросе быстрого хот-фикс-деплоя и она ни разу не выигрывает - компиляция то требуется, как ни крути Python и PHP тут вне конкуренции Аххаха, сравнил жопу с пальцем. Сначала требовал хайлоад потом в пример привел школолотехнику =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 22:41 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Ясно, свеженький тролль. В игнор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 22:43 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
SiemarglЯсно, свеженький тролль. В игнор Не угадал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 22:46 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
uid unique, возможно речь идет об использовании sun.misc.unsafe.* ? Сам я никогда не юзал но на семинарах толи Борисова толи Шипилева постоянно идут отсылки к тому как нужно "хачить" мемори через unsafe. По поводу GС. Некто David в своём блоге гонял бенчмарки на Jira серваках c xmx = 3G и достиг максимального лага в 0.1 сек для +UseG1GC. Conc-Mark-Sweep и обычный Parallel показывали характеристики похуже хотя они более комплексные с точки зреня выводов. Например Parallel давал самый низкий average-lag но при этом самый большой максимальный. Вообще КМК чтобы охарактеризовать GC более полно нужна не таблица а скорее гистограмма и среднее квадратическое отклонение gc time. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 22:55 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonuid unique, возможно речь идет об использовании sun.misc.unsafe.* ? Сам я никогда не юзал но на семинарах толи Борисова толи Шипилева постоянно идут отсылки к тому как нужно "хачить" мемори через unsafe. Первый раз это встретил когда баловался с Java для встроенных устройств, не хочу соврать но столкнулся с этой темой в 2004 или 2005 примерно, вот эта работа http://www.jopdesign.com/thesis/thesis.pdf Он из Австрии, эмулятор JVM на Java у него же был, Java realtime profile, и платы на FPGA. Тезис его мне просто понравился, интересная работа для студентов - было бы полезно и наглядно проходить подобные лабы с минималистической Java и RISC процессором с поддержкой байткодов. Не совсем Java процессор но очень компактно все. Железячки под его Java: http://www.jopdesign.com/cyclone/index.jsp У меня тогда как раз было обострение на железки, Verilog/VHDL, паяльные станции, до сих пор дома валяется куча железа, лупа с подсветкой на треноге, и десяток комплектов незаконечных жучков GPS/GSM для машин и пара ящиков рассыпухи всякой десятилетней давности. Потом обострение прошло, я обленился и сконцентрировался на коммерческом Java программированием. ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 23:12 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonuid unique, возможно речь идет об использовании sun.misc.unsafe.* ? Сам я никогда не юзал но на семинарах толи Борисова толи Шипилева постоянно идут отсылки к тому как нужно "хачить" мемори через unsafe. Глянул на Оракле как и ожидалось, hard real time "не любит" GC http://www.oracle.com/technetwork/articles/javase/index-137216.html An Introduction to Real-Time Java Technology: Part 1, The Real-Time Specification for Java (JSR 1)The RTSJ provides a subclass of RTT called NoHeapRealtimeThread (NHRT). Instances of this subclass are protected from GC-induced jitter. The NHRT class is intended for hard-real-time activities. To maximize predictability, NHRTs are allowed neither to use the garbage-collected heap nor to manipulate references to the heap. Otherwise, the thread would be subject to GC pauses, and this could cause the task to miss its deadline. Instead, NHRTs can use the scoped memory and immortal memory features to allocate memory on a more predictable basis. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 23:18 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
вы все про Delphi?Ок, теперь мы знаем название чудо костылей"Неучем родился - дураком помрёшь". Башляешь пророкам ~130$ и получаешь возможность испольовать Hotspot или JRockit - на выбор. "Ничего личного, чистый бизнес". P.S. Вы бы или голову поднимали от своей песочницы или, таки, не брызгали слюной в разные стороны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 02:39 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, я думаю этот анонимос - это наш-же мембер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 09:31 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
А вот более конкретна бумажка по этому "взрывному" мусорщику https://www.azul.com/files/c4_paper_acm1.pdf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 11:07 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonuid unique, возможно речь идет об использовании sun.misc.unsafe.* ? Сам я никогда не юзал но на семинарах толи Борисова толи Шипилева постоянно идут отсылки к тому как нужно "хачить" мемори через unsafe. По поводу GС. Некто David в своём блоге гонял бенчмарки на Jira серваках c xmx = 3G и достиг максимального лага в 0.1 сек для +UseG1GC. Conc-Mark-Sweep и обычный Parallel показывали характеристики похуже хотя они более комплексные с точки зреня выводов. Например Parallel давал самый низкий average-lag но при этом самый большой максимальный. Вообще КМК чтобы охарактеризовать GC более полно нужна не таблица а скорее гистограмма и среднее квадратическое отклонение gc time. 0.1 сек для гигабайта? а если этот гигабайт лежит в swap на hdd? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 11:29 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovвы все про Delphi?Ок, теперь мы знаем название чудо костылей"Неучем родился - дураком помрёшь". Башляешь пророкам ~130$ и получаешь возможность испольовать Hotspot или JRockit - на выбор. "Ничего личного, чистый бизнес". P.S. Вы бы или голову поднимали от своей песочницы или, таки, не брызгали слюной в разные стороны. слюной брызгаешь пока только ты. для меня вполне достаточно быть просто юзером Java приложений, вроде jenkins и прочих атлазианов, чтоб даже невооруженным взглядом видеть - как оно в мире Java все стабильно и качественно, и не лагает и не требует при случае жестких перезапусков. для этого ведь не нужно быть особо грамотным, достаточно просто попробовать попользоваться, и слюну можно сэкономить, а не разбрызгивать ее на форумах популяризируя чудные костыли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 11:34 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojava0.1 сек для гигабайта? а если этот гигабайт лежит в swap на hdd? Вот блог этого господина http://info.prelert.com/blog/java-garbage-collectors ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 11:35 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonnojava0.1 сек для гигабайта? а если этот гигабайт лежит в swap на hdd? Вот блог этого господина http://info.prelert.com/blog/java-garbage-collectors там нет ничего про swapping, paging, ballooning - очень страшные и табуированные слова для каждого жава типо архитекта страшно, страшно ониибыли далеки от народа со своей сурогатной jvm, от рождения не наученной правильной работе с любой ОС ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:02 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojavaтам нет ничего про swapping, paging, ballooning - очень страшные и табуированные слова для каждого жава типо архитекта страшно, страшно ониибыли далеки от народа со своей сурогатной jvm, от рождения не наученной правильной работе с любой ОС Ты... по принципу если болит или чешется - то надо непременно, обязательно свою боль и свои синяки и струпья вывалить в этот несчастный форум? Ну зачем ты сюда принtc ballooning ? Оно нам надо? Ну не летаем мы на виртуалках (к примеру). Зачем нам сейчас ковырять твои гнойные язвы и слушать как ты стонешь и охаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:09 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonА вот более конкретна бумажка по этому "взрывному" мусорщику https://www.azul.com/files/c4_paper_acm1.pdf График летенси сборщика мусора Go Runtime 1.6 сферического приложения в вакууме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:14 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
schwa, чё такое Go Runtime 1.6 ? Это GoLang? (Sorry) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:20 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
mayton, Да. Он самый Go. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:23 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonНу зачем ты сюда принtc ballooning ? Оно нам надо? Ну не летаем мы на виртуалках (к примеру). Зачем нам сейчас ковырять твои гнойные язвы и слушать как ты стонешь и охаешь гнойные язвы походу у тебя в голове. разве ты не знаешь, что в мире существует понятие виртуального хостинга, вроде EC2 или Azure? да и современная инфраструктура предприятий в датацентрах давно уже заточена на управление ресурсами, ну там, live migrations, capacity on demand, все такое? ну молодец, живи в своем уютном селе дальше, на "сервере", стоящим под столом или в кладовке возле твого рабочего кабинета в здании бывшей столовой. и в чем твой ненагноящийся спич? что java поделки могут запускаться только или на физическом железе или с жестко зааллоцированными параметрами размера предаллоцированной памяти? ну круууууть. ну мощааааа.... прогресс невиданный. верной дорогой идете, тогаищи :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:25 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojava, походу это ты был анонимус выше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:26 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
schwamayton, Да. Он самый Go. Положа руку на серде я уже потерял корень дискусси по поводу GC. Но если мы будем обсуждать GC in General то ОК. Я согласен. Давайте обсуждать генерализованные GC в Lisp, .Net, DLang, Golang и их общие алгоритмы и подходы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:28 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojavaи в чем твой ненагноящийся спич? что java поделки могут запускаться только или на физическом железе или с жестко зааллоцированными параметрами размера предаллоцированной памяти? Это не соответствует действительности. Тот же Netflix тысячи своих джава поделок на EC2, Google запускает тысячи своих джава приложений на виртуалках и не жужжат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:34 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
schwanojavaи в чем твой ненагноящийся спич? что java поделки могут запускаться только или на физическом железе или с жестко зааллоцированными параметрами размера предаллоцированной памяти? Это не соответствует действительности. Тот же Netflix тысячи своих джава поделок на EC2, Google запускает тысячи своих джава приложений на виртуалках и не жужжат. ты нечитатель? я же не говорил, что невозможно запускать. можно - и я даже написал вон выше как - отключаешь всякие балонинги, чотко, дерзко следишь чтоб виртуалки по использовани. памяти в сумме не превышали физическую оперативу хоста и вперед, чтоб не дай бог не в своп... одно только останется спросить - а нафига тогда вообще виртуалки? но то такое. настоящие жава архитекты таким вопросом не задаются - гугл же работает, верно? Ж) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:43 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonschwamayton, Да. Он самый Go. Положа руку на серде я уже потерял корень дискусси по поводу GC. Но если мы будем обсуждать GC in General то ОК. Я согласен. Давайте обсуждать генерализованные GC в Lisp, .Net, DLang, Golang и их общие алгоритмы и подходы. Форкнул http://www.sql.ru/forum/1221727/tyapnichnyy-idealnyy-sborshhik-musora ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:52 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojavaодно только останется спросить - а нафига тогда вообще виртуалки? У виртуалок главный минус - тормозной I/O как с диском, так и по сети. А плюсы в удобстве и простоте обслуживания, админу абсолютно ничего не надо знать об внутреннем устройстве, поэтому он быстро и просто может менять железо под виртуалкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:53 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonschwamayton, Да. Он самый Go. Положа руку на серде я уже потерял корень дискусси по поводу GC. Но если мы будем обсуждать GC in General то ОК. Я согласен. Давайте обсуждать генерализованные GC в Lisp, .Net, DLang, Golang и их общие алгоритмы и подходы. Возвращаясь к java. В ввиду того, что 1) писатели всякого "миддлваре" на джаве (кассандра, и тп) додумались, что хранить данные своих колоночек/столбцов/очередей и тп в хипе, не очень хорошая идея. 2) тем, кому нужны какие-то вменяемые данные по лейтенси, тоже не особо наделяется на GC. Большинство решений, которым нужно эффективное управление памятью, пишут это управление сами. 3) Перед тем как тюнить сборку мусора надо посмотреть профиль аллокаций в профайлере и исправить кучу мест, где аллокации нафиг не сдались... потом может оказаться что и тюнить сборку мусора не надо т.к. ,если у нас генерейшанл GC, например, никто не промоутится Young Generation GC это хорошо (хотя если написать код так, чтобы она была не нужна, то лучше так и сделать), сборка старого поколения очень очень плохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:56 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Я рискну предположить что продавцы VPS нас безпощадно наёб умалчивают по поводу того какую оперативу они нам продают и как ее распределяют в датацентрах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 12:56 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
schwaПеред тем как тюнить сборку мусора надо посмотреть профиль аллокаций в профайлере и исправить кучу мест, где аллокации нафиг не сдались... потом может оказаться что и тюнить сборку мусора не надо т.к. ,если у нас генерейшанл GC, например, никто не промоутится Young Generation GC это хорошо (хотя если написать код так, чтобы она была не нужна, то лучше так и сделать), сборка старого поколения очень очень плохо. 1) Я рискну предположить что сами по себе аллокации не страшны (работа стека это тоже аллокация в некотором смысле) но страшны ссылки которые пережили 1-ю эпоху чистки. Работать без аллокаций вообще невозможно - это равносильно отказу от работы со строковым типом данных. Везде где строки - будут аллокации. 2) По поводу тюнига сборки мусора. Нет ли здесь отсылки к разработкам LMAX? ЕМНИП из лекций по неблокирующим очередям некто рассказывал что дескыть отключали вообще GC на сутки и при этом утечки были так соптимизированы что в качесте уборки использовали просто ежесуточный ребут сервера (нормальный график работы Лондонской биржи). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 13:05 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonschwaПеред тем как тюнить сборку мусора надо посмотреть профиль аллокаций в профайлере и исправить кучу мест, где аллокации нафиг не сдались... потом может оказаться что и тюнить сборку мусора не надо т.к. ,если у нас генерейшанл GC, например, никто не промоутится Young Generation GC это хорошо (хотя если написать код так, чтобы она была не нужна, то лучше так и сделать), сборка старого поколения очень очень плохо. 1) Я рискну предположить что сами по себе аллокации не страшны (работа стека это тоже аллокация в некотором смысле) но страшны ссылки которые пережили 1-ю эпоху чистки. Работать без аллокаций вообще невозможно - это равносильно отказу от работы со строковым типом данных. Везде где строки - будут аллокации. От строк избавиться-то можно (самопильные оффхип строки кое-где используются), а от копирования байт при передаче на запись в файл/сокет уже не получится. mayton2) По поводу тюнига сборки мусора. Нет ли здесь отсылки к разработкам LMAX? ЕМНИП из лекций по неблокирующим очередям некто рассказывал что дескыть отключали вообще GC на сутки и при этом утечки были так соптимизированы что в качесте уборки использовали просто ежесуточный ребут сервера (нормальный график работы Лондонской биржи). Это известный сценарий, когда _все_ создаваемые объекты "всегда умирают молодыми". Если у вас такое приложение, то можно выделять большой-большой массив объектов и его элементы переиспользовать т.к. размер старого поколения в вас не изменяется, то сборок старого поколения нет и вот у вас GC пауза порядка 5 ms и меньше в зависимости от интенсивности создания молодых объектов. Если же нет, то все становится намного интересней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 13:43 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
schwamaytonпропущено... 1) Я рискну предположить что сами по себе аллокации не страшны (работа стека это тоже аллокация в некотором смысле) но страшны ссылки которые пережили 1-ю эпоху чистки. Работать без аллокаций вообще невозможно - это равносильно отказу от работы со строковым типом данных. Везде где строки - будут аллокации. От строк избавиться-то можно (самопильные оффхип строки кое-где используются), а от копирования байт при передаче на запись в файл/сокет уже не получится . Например, сама Oracle владелец и разработчик языка и виртуальной машины Java - вряд ли когда-нибудь в своих high-performance продуктах типа Oracle DMBS, RAC, Exadata, TimesTen будет использовать сборщик мусора в C/C++, а он сейчас возможен по стандарту C++11 и они могли бы его реализовать взяв концепцию из Java. Потому что это бред. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf 20.7.4 Change: Minimal support for garbage-collected regions А вот uDAPL для межсерверной передачи без копирований - они используют: https://docs.oracle.com/cd/E23824_01/html/821-1459/eyasr.html В C++ память жестких дисков PCIe-SSD можно отображать в userspace как обычную память и писать в неё прям из регистров: http://www.avagotech.com/applications/datacenters/enterprise-storage В C++ можно передать байт из RAM (фактически cache-L3 CPU) сервера-1 в RAM-память сервера-2 (а фактически в его L3 CPU за счет PCIe-snooping) без лишних копирований . Чтобы совсем честно физически интерфейс должен быть RoCE/Infiniband/PCIe. Варианты протоколов: 1. VMA- socket 2. uDAPL rdma 3. SISCI rdma 4. Java + uDAPL 5. MPI-2 over uDAPL 6. Или если есть в Java MPI-wrapper то так же (MPI-2 over uDAPL): http://mirror.its.dal.ca/openmpi/faq/?category=java MPI_PUT(src_ptr, size, type, dst_rank, dst_shift, size, type, shared_rdma_window); Page 83 http://www.training.prace-ri.eu/uploads/tx_pracetmo/advanced_parallel_handoutAPPC16.pdf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 16:36 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Вообще то для кешей и прочего можно память без GC использовать в Java. У меня была необходимость использовать большой пул массивов для кеширования без GC (3 GB RAM) еще 5-6 лет назад использовал его в Java. Смотрим ByteBuffer https://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html A direct byte buffer may be created by invoking the allocateDirect factory method of this class. The buffers returned by this method typically have somewhat higher allocation and deallocation costs than non-direct buffers. The contents of direct buffers may reside outside of the normal garbage-collected heap, and so their impact upon the memory footprint of an application might not be obvious. It is therefore recommended that direct buffers be allocated primarily for large, long-lived buffers that are subject to the underlying system's native I/O operations. In general it is best to allocate direct buffers only when they yield a measureable gain in program performance. 3 гига довольно долго выделялись на старте зато потом никто не пытался бессмысленно чистить пул массивов в несколько гигов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 19:21 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
uid uniqueВообще то для кешей и прочего можно память без GC использовать в Java. У меня была необходимость использовать большой пул массивов для кеширования без GC (3 GB RAM) еще 5-6 лет назад использовал его в Java. Смотрим ByteBuffer https://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html A direct byte buffer may be created by invoking the allocateDirect factory method of this class. The buffers returned by this method typically have somewhat higher allocation and deallocation costs than non-direct buffers. The contents of direct buffers may reside outside of the normal garbage-collected heap, and so their impact upon the memory footprint of an application might not be obvious. It is therefore recommended that direct buffers be allocated primarily for large, long-lived buffers that are subject to the underlying system's native I/O operations. In general it is best to allocate direct buffers only when they yield a measureable gain in program performance. 3 гига довольно долго выделялись на старте зато потом никто не пытался бессмысленно чистить пул массивов в несколько гигов. в подобном нет смысла - проще сразу возвращаться на С/С++ и не заниматься ерундой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 19:57 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
uid uniqueСмотрим ByteBuffer ну это ж инвалид на костылях с выколотым глазом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 21:04 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Изопропилuid uniqueСмотрим ByteBuffer ну это ж инвалид на костылях с выколотым глазом Зачем же так об обертке массива байт. память не в хипе и без сборщика мусора - для кешей сгодится. Или предпочитаете метлой мести несколько лишних гигов? Накладненько получается хотя... вольному волю! Для систем с интенсивным вводом выводом объем кеша превышает объем бизнес объектов (классов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 21:23 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Изопропилuid uniqueСмотрим ByteBuffer ну это ж инвалид на костылях с выколотым глазом Ну вообще так и делают - генерят в рантайме/компайлтайме классы обертки на этими Unsafe/DirectByteBuffer и с ними работают - в итоге получаются те же java классы. Но самое интересно начинается, когда нужны коллекции для всего этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 21:37 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojavaв подобном нет смысла - проще сразу возвращаться на С/С++ и не заниматься ерундой Куда возвращаться? Если у тебя крупное бизнес-приложение OVER стотыщ питсот строк и уже написано на платформерах - ты его будешь переписывать на С++ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 21:47 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonnojavaв подобном нет смысла - проще сразу возвращаться на С/С++ и не заниматься ерундой Куда возвращаться? Если у тебя крупное бизнес-приложение OVER стотыщ питсот строк и уже написано на платформерах - ты его будешь переписывать на С++ ? Проблема с байтбуферами в том, что ее 1) сложно пропихнуть в свой код, который писался черти сколько без мысли о том, что кроме GC жизненным циклом объекта никто не может управлять - надо переписывать код. 2) в чужой код может быть вообще не пропихнешь - надо переписывать код. 3) конечно это меньше работы чем переписывать на C/C++, но ввиду того, как пишется код во львиной доле компаний, такие правки могут повлечь тотальное переписывание проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 21:58 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
uid uniqueЗачем же так об обертке массива байт. беда в том, что если этот массив выделяется ByteBuffer.allocate или ByteBuffer.allocateDirect - никто не обещает что array() будет жить. Да и FileСhannel.map не подарок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 22:01 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Изопропилuid uniqueЗачем же так об обертке массива байт. беда в том, что если этот массив выделяется ByteBuffer.allocate или ByteBuffer.allocateDirect - никто не обещает что array() будет жить. Да и FileСhannel.map не подарок Проверьте после инициализации, для этого есть hasArray()... непонятно о чем плачь - возможность выделить память вне GC и хипа есть? Есть. Работайте. У меня код работал, все ок. Вместо 6ГБ хипа было 3ГБ и 3ГБ снаружи кеша для вводе ввывода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2016, 22:47 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
nojavaв подобном нет смысла - проще сразу возвращаться на С/С++ и не заниматься ерундой CGI катать? Род задачи указан - пул массивов, для кеширования. Массивы как backend для потоков вполне себе годятся. Если платят за С, пишите на С, если мне заказчит платит за Java - пишется на Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2016, 22:50 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
"Пиши код так, будто поддерживать его будет склонный к насилию психопат, который знает твой домашний адрес!!" Уже не помню чьЁ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2016, 21:04 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskymaytonЕсли "ее" время куда-то уходит - то должны быть признаки. Вы можете указать хотя-бы 2-3 признака уходящего времени для Java? Сойдет за признак? )) Oracle прекратила разработку Java EE? Нет, это не признак заката Java. Вон была мобильная платформа J2ME, но её время прошло, ей на смену пришёл Android. То, что устаревшие Java-технологии заменяются более современными Java-технологиями, -- это не признак заката Java. maytonИ учитывая плотное "сидение" платформы Android на java-подобных грамматиках ЯП - ему тем более не грозит утекание целого сегмента разработки. Больше там ни на чем не пишут.Java -- «default-ный» язык Android-а, но не единственный. Много Android-овских игр написано на C++ (в рамках Marmalade) и на C# (в рамках Unity). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2016, 23:27 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Пётр СедовmaytonИ учитывая плотное "сидение" платформы Android на java-подобных грамматиках ЯП - ему тем более не грозит утекание целого сегмента разработки. Больше там ни на чем не пишут.Java -- «default-ный» язык Android-а, но не единственный. Много Android-овских игр написано на C++ (в рамках Marmalade) и на C# (в рамках Unity). По ключевому слову Андроид в gihub https://github.com/search?utf8=?&q=android можно нагуглить 240 тысяч проектов на Java и 18 тысяч на сях. Ниже идут прочие хештеги. Я считаю что это достаточно репрезентативно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 22:01 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonПётр Седовпропущено... Java -- «default-ный» язык Android-а, но не единственный. Много Android-овских игр написано на C++ (в рамках Marmalade) и на C# (в рамках Unity). По ключевому слову Андроид в gihub https://github.com/search?utf8=?&q=android можно нагуглить 240 тысяч проектов на Java и 18 тысяч на сях. Ниже идут прочие хештеги. Я считаю что это достаточно репрезентативно.Нет. Исходники коммерческих игр обычно не выкладывают на GitHub. Мобильные игры часто делают кросс-платформенно, сразу на iOS и Android. Упомянутые технологии Marmalade и Unity в этом очень помогают, а вот с Java так легко не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 23:32 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Пётр СедовНет. Исходники коммерческих игр обычно не выкладывают на GitHub. Мобильные игры часто делают кросс-платформенно, сразу на iOS и Android. Упомянутые технологии Marmalade и Unity в этом очень помогают, а вот с Java так легко не получится. Ну хорошо. А откуда вы берете сведения о Marmalade и Unity ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 09:03 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonА откуда вы берете сведения о Marmalade и Unity ?А у меня нет точной статистики по Marmalade/Unity, просто эти технологии постоянно мелькают в вакансиях. А мобильные игры на Unity постоянно на слуху (Hearthstone, Pokemon Go, Angry Birds 2, Fallout Shelter). Я вообще-то возражал на ваше утверждение : maytonБольше там ни на чем не пишут.Мол, почти все Android-овские программы написаны на Java (или JVM-языках). Это не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 18:27 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Пётр СедовМол, почти все Android-овские программы написаны на Java (или JVM-языках). Это не так. Андроид не использует JVM в общем понимании этого слова. У него своя линейка виртуальных машин от Google. Там - другой байткод. Но язык программирования - Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 21:06 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonПётр СедовМол, почти все Android-овские программы написаны на Java (или JVM-языках). Это не так. Андроид не использует JVM в общем понимании этого слова. У него своя линейка виртуальных машин от Google. Там - другой байткод. Но язык программирования - Java. PhoneGap, React Native, Xamarin... Где же там Java? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 21:25 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
skyANAPhoneGap, React Native, Xamarin... Где же там Java? Дайте хоть примерную ссылку на статистику. Нужны - количество проектов в разрезе каждого термина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 21:33 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
maytonАндроид не использует JVM в общем понимании этого слова. У него своя линейка виртуальных машин от Google. Там - другой байткод. Но язык программирования - Java.Но не обязательно использовать именно его, к счастью :). Это в отличие от платформы J2ME, для которой можно было писать только на Java (или JVM-языке), никакого C++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 01:23 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Насчёт понятности кода для других. Мне тут один человек сказал, что лямбды в Джава лучше не использовать, так как их мало кто понимает. То есть выходит не следует использовать последние ништяки, пока все с ними не разберутся? А разве меня касается то, что кто-то возможно ещё не успел изучить лямбды? Пусть изучает, делов то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2016, 15:26 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Есть такая точка зрения, в основном продвигаемая эффективными менеджерами, что надо ориентироваться на идиотов. Лично я предпочитаю не ориентироваться на эффективных менеджеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2016, 15:34 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
XDiaBLoНасчёт понятности кода для других. Мне тут один человек сказал, что лямбды в Джава лучше не использовать, так как их мало кто понимает. Я-бы ему порекомендовал вообще ничего не программировать. Ибо много мест непонятно да и вообще на самолёте летать не стоит... он сложно устроен и иногда падает... ну вобщем Человек в Футляре .. и Чехов рулит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2016, 22:54 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
mayton, напомню тебе, что хдиабло это студент с 0 опытом. Конечно его мнение важно в архитектуре сложных распределенных систем, ради которых вообще нужна ява ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 00:51 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
XDiaBLoНасчёт понятности кода для других. Мне тут один человек сказал, что лямбды в Джава лучше не использовать, так как их мало кто понимает. То есть выходит не следует использовать последние ништяки, пока все с ними не разберутся? А разве меня касается то, что кто-то возможно ещё не успел изучить лямбды? Пусть изучает, делов то. дык только последние ништяки и стоит использовать. появление всякого самого последнего ништяка автоматически означает, что какой-то из предыдущих ништяков надо немедленно выкинуть. потому что - количество ништяков, которые ты можешь одновременно унести, ограничено - не понтово не пользоваться самыми последними ништяками - самые последние ништяки самые лучшие, потому что самые молодые. А пока ты молодыми ништяками рулишь, ты и сам молодой. - раз появились последние ништяки, значит кто-то из предыдущих обязательно умрет. Вот появились лямбды, к примеру, значит - циклы for обязательно отменят. И, если ты не успеешь переписать свой код с явных циклов на лямбды, то он в следующей версии явы код просто сломается и перестанет работать, потому что к тому времени устаревшие циклы отменят и исключат из описания языка. А понимать - это зло. Как только ты что-то понял - оно сразу перестало быть ништяком. Так жить вообще нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 04:01 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
booby, Что-то не пойму, сарказм или нет? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 07:09 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Siemarglmayton, напомню тебе, что хдиабло это студент с 0 опытом. Конечно его мнение важно в архитектуре сложных распределенных систем, ради которых вообще нужна ява Для студента староват однако. На Jave десктопные приложения пишу. Уж какие нужны на работе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 07:14 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
Имхо, для эффективной работы над любым проектом, нужно располагать неким обязательным багажом знаний. Об языке, о библиотеках, о технологиях, об ахитектуре самого проекта. Следует стремиться к тому, что этот самый багаж был а) минимальным по объему и б) в основном известен даже незнакомым с проектом людям. Это и называется "понятность". С другой стороны, со слишком маленьким багажом далеко не уедешь, если проект сложный или имеет высокие требования. Но вот "знание синтаксиса java8" уже можно смело включать в обязательные требования для работы над проектом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 16:30 |
|
||
|
Хороший тон в программировании?
|
|||
|---|---|---|---|
|
#18+
scfИмхо, для эффективной работы над любым проектом, нужно располагать неким обязательным багажом знаний. Об языке, о библиотеках, о технологиях, об ахитектуре самого проекта. Следует стремиться к тому, что этот самый багаж был а) минимальным по объему и б) в основном известен даже незнакомым с проектом людям. Это и называется "понятность". С другой стороны, со слишком маленьким багажом далеко не уедешь, если проект сложный или имеет высокие требования. Но вот "знание синтаксиса java8" уже можно смело включать в обязательные требования для работы над проектом) Сейчас судя по вакансиям, Spring и Hibernate тоже в списке обязательных предметов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2016, 07:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1340592]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
435ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
129ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 814ms |

| 0 / 0 |
