мешает в тех случаях, когда ёмкости знакового хватает, а беззнакового — нет. кроме того, это костыльная беззнаковость — это минус к производительности.
сборщик мусора на джаве не умеет освобождать память, выделяемую С-функциями
lol, а должен?
дают нечитабельное нечто
проблема архитектуры приложения. сама по себе ява многословна, но вполне понятна. с-модули должны аккуратно выноситься и обвёртываться.
проще сразу было написать на плюсах
и получить нечитаемое говно из коробки. хоть и говорят, что кресты с 11ым стандартом сильно похорошели, читаемость среднестатистического кода на крестах меня удручает.
А скажите пожалуйста, не иcпользует ли эта, как вы выразились «обёртка»
тот самый JNI?
Я не про то, что всем быстро кинуться нужно, пользоваться только этим механизмом. Про то, что он необходим быть в составе языка для его полноценности и гибкости.
А то, что порой люди бездумно лепят то, что только что изучили - это вобщем проблема архитектуры и управления проектом. Так сказать проблем в головах.
должен, если вы хотите писать нормально на связке жабы и си
с-модули должны аккуратно выноситься и обвёртываться.
на практике это «аккуратно» сводится к тому, что сама программа пишется на, а на явке — только морда.
и получить нечитаемое говно из коробки. хоть и говорят, что кресты с 11ым стандартом сильно похорошели, читаемость среднестатистического кода на крестах меня удручает.
до сих пор не встречал ни разу ни одного опенсорсного нечитабельного приложения на плюсах.
нет, оно везде разное: CLOS/MOP, io/JavaScript/Self, Eiffel, Component Pascal/Modula-2/Oberon-2,Linux kernel insmod, Simula67/C++/Java/C#/D/.../Swift/Python, SmallTalk/ObjectiveC/..., Delphi (рефлексия между классами, а не объектами класса), Go, Rust, и т.п.
динамическая/статическая типизация, одиночная/множественная диспетчеризация, first class object и метаклассы либо FBC, делегирование и прокси-объекты и категории и протоколы в objC, прототипное ООП, метаклассы, метаобъектный протокол, тайпинфо, трейты, миксины и рефлексия
Чем они похожи? Ключевые слова одни и те же? Так это незначительные мелочи. В C++ первый и второй плюсы — RAII, чего в Java вообще никак нет. Одного этого достаточно, чтобы не валить их в одну кучу, а там ещё вагон и маленькая тележка отличий разного калибра.
Значит ты нарушаешь все мылимые и немыслимые рекомендации.
я пишу код так, как необходимо в конкретной ситуации, а не так, как в каком-нибудь Коране написано
Делай геттер-сеттер в интерфейсе.
зачем мне на пустом месте раздувать код? алсо, геттер-сеттер организуют доступ к переменной, если она не наследована, то и геттеру с сеттером некуда будет обращаться.
кстати, ещё один пример ущербности явы. в С++ если мне из переменной потребуется сделать метод, я воспользуюсь перегруженными операторами приведения к типу, в С# — встроенной концепцией геттеров и сеттеров. в Java на уровне языка задача прозрачного изменения переменной на метод не решаема, поэтому мы руководствуемся ущербной логикой в виде «рекомендаций».
впрочем, современные жабо-IDE должны уметь в рефракторинг таких мелочей, что показывает ещё более подчёркивает ущербность типичного стиля ява-девелопмента.
наконец, в яве нет инлайн-ф-ций, поэтому геттеры-сеттеры на каждый чих втройне идиотизм
на практике я не могу вспомнить ни одного случая, где производительность явы оказалась бы недостаточной, особенно когда речь идёт о долгоживущих приложениях.
динамическая/статическая типизация, одиночная/множественная диспетчеризация, first class object и метаклассы
Это нюансы. ООП одинаковое. Само понятие ООП не зависит от нюансов реализации. Мне, сишнику(скорее даже плюсовику), даже в ПХПшный код приходилось залазить. Да, работа с памятью странная. Так она и в Жабе странная. Но ничего. Справлялись. Идея аналогичная. Но сама идея — ООПшная.
Данные это закрытая деталь реализации. При наследовании значение имеют только методы.
Из-за этого меня страшно бесит широкая мода последнего времени в ORM'а на разных платформах обеспечивать доступ к данным через свойства, а не через методы. Чуть что менять — так начинается зоопарк со всякими геттерами/сеттерами.